x402 · Agent-native payments

Data your agent can buy on its own.

Bvcket's predictions, research reports and agent-bet positions are available pay-per-call over x402 — USDC on Base, settled in a single HTTP round-trip. No API key, no signup, no human in the loop. Point any x402 wallet — MoonPay PayBox, Coinbase AgentKit, x402-fetch — at the endpoints and it just works.

USDC on BaseCoinbase CDP facilitatorEIP-3009 gaslesspay-per-call

How it works

Three steps, one round-trip

1

Ask

Your agent GETs any paid endpoint. With no payment it returns 402 — the price, token and pay-to address come back in the JSON body and the Payment-Required header.

2

Pay

The agent's wallet signs a one-time USDC transfer authorization (EIP-3009 — gasless, no pre-funded account, no invoice). The x402 client does this automatically.

3

Get data

Retry with the X-PAYMENT header; the Coinbase CDP facilitator settles and you get 200 + JSON. The receipt covers re-fetches of the same event until it starts.

What's for sale

Pay-per-call endpoints

Across 9 leagues — NFL, MLB, CFB, NBA, NHL, EPL, ATP, WTA and WC26. Discovery is free; you only pay for the analysis you pull.

Game bundle

$0.99

Everything for one game — every card below, in a single call.

/v1/bundle/{event_id}

Or buy individual cards

CardWhat it providesPrice
predictionModel-vs-market win probabilities for each outcome, the pick, the spread/total lean, and the moneyline.$0.15
analysisThe full long-form research report — executive summary plus a chaptered markdown breakdown.$0.25
agent_betsThe model's recommended bets — moneyline, spread/run-line and total — each with confidence and reasoning.$0.15
oddsPrices across venues — sportsbook consensus, Polymarket, and live prediction-market quotes.$0.10
matchupSide-by-side team stats and model matchup features (efficiency, trenches, pace, pitcher splits).$0.10
injuriesReported injuries and lineup changes for both sides, with the model's impact assessment.$0.05
box_scoreThe box score and starting lineups, shaped for the sport.$0.10
scoring_playsA chronological log of the game's scoring plays.$0.05
drive_chartDrive-by-drive results for the game (football).$0.10
newsThe latest headlines and stories relevant to the matchup.$0.05
key_accountsA curated feed of posts from trusted insider accounts.$0.05
liveThe live game state — score, period/inning/quarter and clock, and status.$0.05

Each card is /v1/cards/{event_id}/{card}. Availability varies by sport — list a game's cards at /v1/cards/{event_id}.

Free discovery

/v1/leaguesSupported leagues + per-resource availability.
/v1/events?league=&date=Slate for a league on an ET date (default today).
/v1/cards/{event_id}List the cards available for a game, with prices + descriptions.
/v1/schemaFull machine-readable schema + live pricing.

Prices are the x402 per-call rate in USDC. High volume? A subscription API key covers unlimited calls on a flat plan.

Point your agent here

Wire it up in a few lines

Base URL

https://api.bvcket.xyz

Machine-readable manifest

https://api.bvcket.xyz/.well-known/x402

Agents and x402 directories read this to discover every endpoint, its price and the accepted token automatically — no scraping these docs.

Works with

  • • MoonPay PayBox (Claude / ChatGPT wallet)
  • • Coinbase AgentKit
  • • x402-fetch / x402-axios (TypeScript)
  • • x402 for Python (httpx / requests)
  • • any HTTP client that speaks x402
Inspect the price — any language
# 1. Ask for a paid resource with no payment → 402 with the price.
curl -i https://api.bvcket.xyz/v1/predictions/nfl:nflverse:2026_08_CAR_GB

# HTTP/1.1 402 Payment Required
# Payment-Required: eyJ4NDAyVmVyc2lvbiI6Mi...     ← base64 requirements (header)
# {
#   "x402Version": 2,
#   "accepts": [{
#     "scheme": "exact",
#     "network": "eip155:8453",                    ← Base
#     "asset":   "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",  ← USDC
#     "amount":  "150000",                         ← 0.15 USDC (6 decimals)
#     "payTo":   "0xBA8c022AB722Fae8979b5619a9EAf00A7c802B18"
#   }]
# }
TypeScript — agent wallet
// npm i x402-fetch viem   — an agent paying from its own wallet
import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY as `0x${string}`);

// wrapFetchWithPayment handles the 402 → sign USDC on Base → retry, transparently.
const pay = wrapFetchWithPayment(fetch, account);

const res = await pay("https://api.bvcket.xyz/v1/predictions/nfl:nflverse:2026_08_CAR_GB");
const prediction = await res.json();   // 200 OK — the prediction card, $0.15
TypeScript — connected wallet
// A connected browser wallet (wagmi) — the user approves each payment.
import { wrapFetchWithPayment } from "x402-fetch";
import { useWalletClient } from "wagmi";

const { data: walletClient } = useWalletClient();
const pay = wrapFetchWithPayment(fetch, walletClient);

// Buy one card ($0.10) — or /v1/bundle/{id} for everything ($0.99).
const odds = await pay("https://api.bvcket.xyz/v1/cards/nfl:nflverse:2026_08_CAR_GB/odds")
  .then((r) => r.json());
Python
# pip install "x402[httpx,evm]" eth-account
# The official x402 client wraps httpx/requests with an eth_account signer and
# runs the 402 → sign → retry loop for you. Point it at the base URL:
#
#   base_url = "https://api.bvcket.xyz"
#   GET /v1/predictions/{event_id}   →  signed USDC payment  →  200 + JSON
#
# See https://x402.org and https://pypi.org/project/x402 for the current client API.

Payment details

Settlement

Payments settle on Base through the Coinbase CDP facilitator. Nothing custodial on our side — your wallet signs, the facilitator verifies and settles, you get the data.

Network
Base (eip155:8453)
Asset
USDC · 6 decimals
Facilitator
Coinbase CDP
Scheme
exact (EIP-3009)
Pre-game rule
refused, uncharged, after kickoff
Receipt
re-fetch the same event free until it starts

Pay per call with x402

Best for agents and low/variable volume. No signup — just a funded wallet. You're reading the guide for it.

View the manifest →

Subscribe with an API key

Best for apps and high volume: a flat monthly plan, unlimited calls, a single Authorization: Bearer header.

Get an API key →