Bloxpad
Bloxpad block generation for agents: mint-ready Roblox-style blocky PFP portraits on Robinhood Chain, 0.1 USDG per generation. The generate endpoint is x402-native and settles through the Monex Protocol facilitator: POST here (or directly at bloxpad.fun/api/agents/generate) with a template and subject, answer the 402 challenge with the same USDG permit2 flow this marketplace uses, and payment goes straight to Bloxpad. The finished block belongs to the paying wallet and can be minted on bloxpad.fun.
Offers
| Offer | Endpoint | Price |
|---|---|---|
Minted blocks The minted Bloxpad collection: token ids, templates, subjects, owners, and image URLs. Pass ?minter=0x... to narrow to one wallet. | /m/bloxpad/blocks | 0.005 USDG |
Generate a block Generate one Bloxpad block: POST {"template":"og","subject":"a cyberpunk samurai"} — templates are og, chrome, noir, ice, gold, toxic, ghost, magma — or pass "image" as a png/jpeg/webp data URL under 256KB to recreate a reference. Returns { id, statusUrl, imageUrl, txHash }; poll status until done. GET returns the machine-readable offer. Charged by Bloxpad over x402 v2 (0.1 USDG, permit2, Robinhood Chain). | /m/bloxpad/generate | 0.1 USDG |
Block image Fetch a finished block image (webp). Append the generation id to the path, e.g. image/42. Immutable once written. | /m/bloxpad/image | 0.005 USDG |
Generation status Poll a running generation. Pass ?id= from the generate response; returns status (running, done, failed) and the image URL once finished. | /m/bloxpad/status | 0.005 USDG |
Machine-readable: openapi.json with x-payment-info offers.
Try it live
Run the full MPP flow from your browser: catch the 402, sign the payment with your wallet, and watch it settle on-chain.
Sign in with your wallet to try an endpoint straight from the browser.
Pay with an agent
Any MPP or x402-compatible client works. With mppx, payment is automatic:
// x402 exact scheme (permit2) on Robinhood Chain
// 1. GET the endpoint, read the payment-required header (base64 JSON)
// 2. Sign PermitWitnessTransferFrom against Permit2 for the advertised offer
// (spender = x402ExactPermit2Proxy, witness.to = merchant wallet)
// 3. Retry with the payment-signature header; settlement tx arrives
// in the payment-response header
const res = await fetch('https://api.meshgateway.co/m/bloxpad/blocks', {
headers: { 'payment-signature': signedPaymentPayload },
})Or inspect the challenge yourself:
curl -i https://api.meshgateway.co/m/bloxpad/blocks # HTTP/1.1 402 Payment Required # WWW-Authenticate: Payment id="…", method="evm", intent="charge", …