tinyx402

Using the web app

The playground runs real, paid requests from your browser wallet. The dashboard shows what you have run and paid for.

Connect a wallet

Click Connect wallet. Any browser wallet works: MetaMask, Rabby, Brave, OKX, Coinbase Wallet, or any other extension (they're detected automatically). On mobile, open the site in your wallet app's built-in browser. If your wallet is on a different chain, the playground offers to switch to Whitechain Sepolia (1874) and adds it if missing.

Fund it with test USDT

The playground shows your USDT balance next to the price of the selected endpoint. See getting test funds. You do not need WBT.

Pick an API and fill the form

Choose Search, Fetch, Agent, Agent (SSE), Research, Datasets or Browser. Each form starts with working defaults, so you can run it right away.

  • The main fields are always visible. Everything else the endpoint accepts is under Advanced options, which opens automatically when one of those fields is set. Each field maps one-to-one to the API reference.
  • Empty fields are left out of the request.
  • Lists (URLs, CSS selectors, domains) take one entry per line or comma-separated values.
  • JSON fields (agent output_schema, dataset spec) must be valid JSON.
  • The form is checked against the same schema the server uses before your wallet is asked to sign. You never sign for a request that would be rejected.
  • The Cost row updates live. For Research it depends on mode, and for Datasets on target_rows.
TabWhat happens after you pay
Search, Fetch, BrowserThe JSON response appears straight away.
AgentWaits up to 280 s for the run, then shows result. Not charged if the run fails.
Agent (SSE)Streams each step. A Live browser panel shows the agent's browser in real time.
ResearchShows the run ID, then (with Follow progress ticked) streams plan_updated, source_fetched… and renders the final report. You can switch to the raw JSON.
DatasetsShows the planned columns, streams row events as they land, then loads the rows.

Set a spend cap

Spend cap / payment is passed to spendControls.allowedAssets[].maxAmountPerPayment. The client refuses to sign anything above it, even if a server asks.

Run with x402

Your wallet shows an EIP-712 signature request for a TransferWithAuthorization to the service's pay-to address. It's a signature only, not a transaction. Approve it, and the Payment flow panel shows each step:

  1. GET/POST … returns HTTP 402, with the decoded PAYMENT-REQUIRED available
  2. Requesting EIP-3009 signature
  3. Authorization signed (no gas)
  4. Paid retry with PAYMENT-SIGNATURE returns HTTP 200
  5. Settled on-chain, linked to the explorer

Dashboard

Each run is stored in your browser, together with the PAYMENT-RESPONSE receipt. When the deployment has a database (DATABASE_URL), the server-side log is merged in, so runs made from scripts with the same wallet show up too. Click a row to see its input and output.