Solana

Paid requests, live ledger

Add pay-per-request billing to any API in a few lines, and give agents one client that pays automatically over x402.

Earned today
0.84 USDC
Paid calls today
312
Live endpoints
4
Test mode calls
58

Activity, last 30 days

TotalUnique

Breakdown

  • Middleware for Express, Next.js...65%
  • Client wrapper (paycurl.fetch) that...20%
  • Test mode with fake...15%
Paid requests, live ledger
TimeEndpointPayerAmountStatus
2 min agoGET /v1/tides9wFq...RtLm0.002 USDCSettled
4 min agoGET /v1/tides3nBx...Yp7d0.002 USDCSettled
9 min agoGET /v1/forecastHk5e...2cVa0.010 USDCSettled
14 min agoPOST /v1/route9wFq...RtLm0.025 USDCPending
21 min agoGET /v1/tidesUd4s...8zQk0.002 USDCRefused: quote expired
33 min agoGET /v1/forecast3nBx...Yp7d0.010 USDCSettled

Paid calls per hour, last 24h

Peak at 15:00 UTC when two agents polled the forecast endpoi

Endpoints and prices

  • GET /v1/tides0.002 USDC per call, 214 calls todayLive
  • GET /v1/forecast0.010 USDC per call, 71 calls todayLive
  • POST /v1/route0.025 USDC per call, 27 calls todayLive
  • GET /v1/buoys0.001 USDC per call, 0 calls todayTest mode

Settlement

410 msAvg verify time
6Refused quotes
0 USDCHeld by Paycurl

Seller settings

Accept USDC on Solana
Test mode for new endpoints
List endpoints in public directory
Email me when a payer is refused twice

Endpoints

Set a price per route and see its status.

Your endpoints

RoutePriceModeCalls todayEarned today
GET /v1/tides0.002 USDCLive2140.43 USDC
GET /v1/forecast0.010 USDCLive710.71 USDC
POST /v1/route0.025 USDCLive270.68 USDC
GET /v1/buoys0.001 USDCTest00.00 USDC

Add a priced route

Results appear here.

Payments

Every quote, signature and settlement.

Payment log

TimePayerRouteAmountSignature
12:419wFq...RtLm/v1/tides0.002 USDC5Kc2...mQ9x
12:393nBx...Yp7d/v1/tides0.002 USDC2Vh8...Lr4t
12:34Hk5e...2cVa/v1/forecast0.010 USDC4Ty7...dN3b
12:21Ud4s...8zQk/v1/tidesRefusednone
12:089wFq...RtLm/v1/route0.025 USDC3Pj6...Wk8s

Today

306Settled
6Refused
0.0027 USDCAvg amount

Sandbox

Run the whole 402 loop without real funds.

Test a route end to end

Request without payingThe route returns 402 with a quote of 0.010 USDC for GET /v1/forecast.
Sign with a test wallettest-agent-1 signs the quote against its fake balance.
Retry and settleThe sandbox facilitator verifies and your handler returns 200 with a receipt.

Agent run log

GET /v1/forecast?port=SEA
402 quote: 0.010 USDC to 4Zt8...PcB, expires in 60s.
Signed by test-agent-1, retrying.
200 OK. Receipt rcpt_t_0041 settled in the sandbox. Balance now 4.99 USDC.

Directory

Find paid endpoints and copy the call.

Listed endpoints

EndpointSellerPriceUptime 7d
/v1/tidestidegauge.dev0.002 USDC99.8%
/v1/trackparcelhound.io0.004 USDC99.1%
/v1/fxlexrate.xyz0.001 USDC100%
/v1/geocodemapnest.dev0.003 USDC98.6%

Copy snippet for /v1/fx

typescript
const res = await paycurl.fetch("https://api.lexrate.xyz/v1/fx?pair=USDC-EUR", {
  wallet,
  maxPrice: "0.002"
});
console.log(await res.json());

Your wallet

Live: balances read from Solana after you connect. Read-only, nothing to sign.

Connection

Live

Connect Phantom, Solflare or Backpack. Paycurl only reads your public address and balances.

Token accounts

Live

Connect a wallet to list its tokens.