Bitrefill

active

Buy gift cards, eSIMs, mobile top-ups and prepaid cards with USDC via x402. 10,000+ brands across 180+ countries. No API keys or Bitrefill account required — wallet payment and optional SIWX sign-in only.

SearchBaseSolanax402 v2exactuptobitrefill.com ↗︎

Settled via Coinbase.

Transactions · 30d
827
Volume · 30d
$802.40
Unique buyers · 30d
88
Uptime · 30d
100.0%
Latency p50
290ms
Reported calls · 30d
372

Endpoints (11 live)

  • GET /x402/invoice/status — Check an invoice status and, with SIWX from the paying wallet, retrieve redemption codes. (0.001 USDC on Base)
  • GET /x402/topups/search — Search mobile top-ups & prepaid airtime for carriers in 180+ countries. Pay in USDC via x402, no account. (0.002 USDC on Base)
  • GET /x402/esims/search — Search prepaid eSIM data plans for 180+ countries and regions. Pay in USDC via x402, no account. (0.002 USDC on Base)
  • POST /x402/invoice/pay — Pay a Bitrefill invoice in USDC via x402 to buy gift cards, eSIMs & mobile top-ups across 180+ countries. (1000 USDC on Base)
  • GET /x402/checkout/info — Discover the Bitrefill x402 storefront: supported networks, the full route flow, and wallet persistence rules. (0.001 USDC on Base)
  • GET /x402/products/detail — Get a product's packages, pricing, and recipient requirements before creating an invoice. (0.001 USDC on Base)
  • POST /x402/invoice/create — Create a price-locked USDC invoice for one or more gift cards, eSIMs, or mobile top-ups. (0.002 USDC on Base)
  • GET /x402/gift-cards/search — Search 10,000+ gift card & voucher brands across 180+ countries by name and country. Pay in USDC via x402, no account. (0.002 USDC on Solana)
  • GET /x402/my/orders — Authenticate by signing the sign-in-with-x challenge with the SAME wallet that paid the invoice. Steps: (1) read the challenge fields from this 402 response's extensions["sign-in-with-x"].info (domain, uri, version, chainId, nonce, issuedAt, expirationTime, statement); (2) build the CAIP-122/EIP-4361 (SIWE) message from them and sign it with your wallet (eip191 personal_sign; smart wallets / EIP-1271 + EIP-6492 are supported); (3) base64-encode a JSON object of the DECOMPOSED fields { domain, address, uri, version, chainId, type: "eip191", nonce, issuedAt, signature } (NOT { message, signature }) and send it in the SIGN-IN-WITH-X request header, then retry. The @x402/extensions sign-in-with-x client (createSIWxClientHook) builds this header for you; pin it to the version the challenge advertises to avoid header-shape drift. Tip: sign this same challenge once at POST /x402/connect to mint a reusable access token; send it as the X-Access-Token: <token> request header to skip both the fee and re-signing on every route until it expires. The one exception is invoice/pay: the token does nothing there — it settles the invoice's real USDC, and the wallet that sends that payment is the payer. (free)
  • GET /x402/my/esims — Authenticate by signing the sign-in-with-x challenge with the SAME wallet that paid the invoice. Steps: (1) read the challenge fields from this 402 response's extensions["sign-in-with-x"].info (domain, uri, version, chainId, nonce, issuedAt, expirationTime, statement); (2) build the CAIP-122/EIP-4361 (SIWE) message from them and sign it with your wallet (eip191 personal_sign; smart wallets / EIP-1271 + EIP-6492 are supported); (3) base64-encode a JSON object of the DECOMPOSED fields { domain, address, uri, version, chainId, type: "eip191", nonce, issuedAt, signature } (NOT { message, signature }) and send it in the SIGN-IN-WITH-X request header, then retry. The @x402/extensions sign-in-with-x client (createSIWxClientHook) builds this header for you; pin it to the version the challenge advertises to avoid header-shape drift. Tip: sign this same challenge once at POST /x402/connect to mint a reusable access token; send it as the X-Access-Token: <token> request header to skip both the fee and re-signing on every route until it expires. The one exception is invoice/pay: the token does nothing there — it settles the invoice's real USDC, and the wallet that sends that payment is the payer. (free)
  • POST /x402/connect — Authenticate by signing the sign-in-with-x challenge with the SAME wallet that paid the invoice. Steps: (1) read the challenge fields from this 402 response's extensions["sign-in-with-x"].info (domain, uri, version, chainId, nonce, issuedAt, expirationTime, statement); (2) build the CAIP-122/EIP-4361 (SIWE) message from them and sign it with your wallet (eip191 personal_sign; smart wallets / EIP-1271 + EIP-6492 are supported); (3) base64-encode a JSON object of the DECOMPOSED fields { domain, address, uri, version, chainId, type: "eip191", nonce, issuedAt, signature } (NOT { message, signature }) and send it in the SIGN-IN-WITH-X request header, then retry. The @x402/extensions sign-in-with-x client (createSIWxClientHook) builds this header for you; pin it to the version the challenge advertises to avoid header-shape drift. Tip: sign this same challenge once at POST /x402/connect to mint a reusable access token; send it as the X-Access-Token: <token> request header to skip both the fee and re-signing on every route until it expires. The one exception is invoice/pay: the token does nothing there — it settles the invoice's real USDC, and the wallet that sends that payment is the payer. (free)

First seen · last seen · last active