Skip to content

deadlyrwr/basora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Basora

Socials

https://x.com/BasoraAIbase https://t.me/basoraportal

Basora AI

Live data marketplace for autonomous AI agents.

Per-request data on Base, settled in USDC via x402.
No subscriptions. No API keys. No accounts. Just a wallet and HTTP.

basora.xyz mainnet usdc x402 alpha


What is Basora

Autonomous agents need fresh data — photos of a specific street right now, a voice utterance in a low-resource language, the shelf price of a SKU in a specific store. Existing datasets ship in quarterly batches and are stale by the time an agent acts on them. Scrapers carry legal risk and don't cover local or rare content.

Basora collapses discovery → quote → payment → delivery into a single HTTP round-trip an agent already knows how to make:

curl -X POST https://basora.xyz/api/discover \
  -H 'content-type: application/json' \
  -d '{"type":"streetview","geo":"Berlin, Mitte","freshness":"<1h"}'
# HTTP/1.1 402 Payment Required
# x-payment-asset:      USDC
# x-payment-chain:      base
# x-payment-amount:     0.083
# x-payment-pay-to:     0x21204a52b35e567a7A1BFBB18F8267d996e7aE37
# x-payment-facilitator: x402.coinbase.com
# x-request-id:         req_…

The agent signs USDC.transfer(pay-to, amount) with its wallet, then settles:

curl -X POST https://basora.xyz/api/fulfill \
  -d '{"requestId":"req_…","txHash":"0x…"}'
# ← tx receipt + IPFS CID + basora-v1/single-use license

Settlement lands in ~2 seconds on Base. 85% to the contributor, 10% protocol fee, 5% dispute reserve — all routed in the same on-chain settlement the agent paid.


Architecture

                          ┌──────────────────┐
   agent HTTP ───POST /discover──►            │
                          │   Routing-agent  │ matches by geo + specialty
                          │   Pricing-agent  │ rarity × freshness × demand
                          ▲──────────────────┘
                          │
                  402 + quote
                          │
   agent signs USDC.transfer on Base ◄── Coinbase Smart Wallet (passkey)
                          │
   agent HTTP ───POST /fulfill───►
                          │   ChainService    verify tx via public Base RPC
                          │   StorageService  pin metadata to IPFS via Helia
                          │   StoreService    release escrow 85/10/5, drift rep
                          ◄── tx + CID + license

Four internal agents pay each other over the same x402 rails — there's no special path for protocol traffic.

Agent Role
Routing Decomposes request, builds candidate pool
Pricing Quotes USDC per-request from rarity × freshness × demand
Verification Geo, EXIF, perceptual-hash antifraud; releases escrow on pass
Quality Soulbound reputation that drifts up with successful fulfillments

Quickstart

git clone https://github.com/deadlyrwr/basora.git
cd basora
npm install && npm --prefix api install && npm --prefix web install --legacy-peer-deps

# Optional — enable real USDC payments on Base mainnet
echo "BASORA_TREASURY_ADDRESS=0xYourBaseAddress" > api/.env

npm run dev
# api  on http://localhost:4000
# web  on http://localhost:3000

Without BASORA_TREASURY_ADDRESS everything runs in simulated mode (bots keep the feed warm, no real payments). With the env var set, the playground exposes a mainnet · real USDC toggle and signs an actual on-chain transfer through the connected Smart Wallet.


API

Endpoint Verb Purpose
/discover POST Submit a sample need → returns 402 Payment Required with machine-readable quote
/fulfill POST Present txHash, API verifies on-chain, releases sample + receipt
/payment-config GET Treasury, USDC contract, chain ID, decimals
/stats GET GMV, requests, fees, real Base block height
/feed?limit=N GET Recent settlements (also streamed via socket.io)
/agents · /contributors GET Protocol participants
/sample/:cid GET IPFS gateway for pinned metadata

Tech

Layer Stack
Web Next.js 14 · Tailwind CSS · Bricolage Grotesque · react-three-fiber + custom GLSL terrain shader · d3-geo orthographic globe
API NestJS 10 · socket.io · viem (public Base RPC) · Helia + UnixFS (IPFS) · JSON-snapshot persistence
Chain Base mainnet (8453) · native USDC · Coinbase Smart Wallet via @coinbase/wallet-sdk
Settle HTTP 402 → wallet signs USDC.transfer → API verifies receipt → release
Ops pm2 · nginx · Let's Encrypt · ports 3402/4402

Repo layout

basora/
├── api/         # NestJS — marketplace, bots, store, chain, storage, feed
├── web/         # Next.js — /app utility (no marketing landing, / → /app)
└── deploy/      # pm2 ecosystem.config.cjs · basora.xyz nginx vhost

Branches

  • main — what runs at basora.xyz
  • feat/datanft-experiment — ERC-721 minting for rare-sample resale royalties (WIP)
  • feat/voice-validation — whisper-based voice utterance validation (WIP)

built on base · paid in usdc · live at basora.xyz

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors