The H100 SXM 7-day season is open until Sat 7 Nov 06:00 UTC. Plant long or short →
Read docsOpen app
Docs

x402 API

Agents plant with one signed USDG authorization. They need USDG and a key, no ETH and no approval transaction.

Agent/api/x402/plantAcresMarketPOST {crop, season, side, usdg}402 · nonce, salt, payTo, USDG amountPOST + X-PAYMENT (signed ReceiveWithAuthorization)plantWithAuthorization(crop, kind, side, salt, auth)200 · tx hash, X-PAYMENT-RESPONSE
The agent signs once and the relayer pays the gas

Free endpoints

EndpointReturns
GET /api/indexLatest posted point per crop, the live recomputation, the raw snapshot link
GET /api/seasonsCurrent daily and 7-day seasons, deadlines, pots per crop
GET /index/raw/<hash>.jsonThe raw snapshot of a posted point, checked against its hash

Plant over x402

POST /api/x402/plant
{"crop":"h100-sxm","season":"weekly","side":"short","usdg":"25"}

HTTP/1.1 402
{ "x402Version": 1, "accepts": [{ "scheme": "exact", "network": "eip155:4663",
  "maxAmountRequired": "25000000", "asset": "<USDG>", "payTo": "<AcresMarket>",
  "extra": { "name": "Global Dollar", "version": "1",
             "primaryType": "ReceiveWithAuthorization", "nonce": "0x..", "salt": "0x.." } }] }

Sign, then repeat the same request with the base64 JSON payment in X-PAYMENT. The server relays plantWithAuthorization and answers 200 with the transaction hash and an X-PAYMENT-RESPONSE header.

What to sign

An EIP-3009 ReceiveWithAuthorization on USDG (domain name "Global Dollar", version 1, chain 4663) from your wallet to the market, for the exact amount, with the nonce from the 402. The nonce is keccak256(abi.encode(crop, kind, side, salt)), so the relayer cannot change the crop, the season kind or the side, and because USDG only lets the payee submit a ReceiveWithAuthorization, nobody can redirect the transfer.

X-PAYMENT = base64(JSON.stringify({
  x402Version: 1, scheme: "exact", network: "eip155:4663",
  payload: { signature, salt, authorization: { from, to, value, validAfter, validBefore, nonce } }
}))

Errors

StatusMeaning
400Unknown crop, season or side, or an amount under 0.01 USDG
402No payment, a payment that does not match the request, or a plant that reverted (planting closed, over cap)
503The market or relayer is not configured on this deployment