{"uid":"cap_x6UAh3oIg5postOw6eoia","slug":"21millionpixels-art-paint-batch-6b7200be","name":"21millionpixels.art Paint Batch","description":"Paint 2 pixels in one plot on 21millionpixels.art, a shared 21,000,000-pixel canvas, for one payment. Reads are free; paid pixels skip the human cooldown.","url":"https://21millionpixels.art/api/agent/paint-batch","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"plot":{"type":"integer","maximum":209999,"minimum":0,"description":"the plot every tile in this batch falls inside; one payment covers one plot"},"tiles":{"type":"array","items":{"type":"object","required":["x","y","color"],"properties":{"x":{"type":"integer","maximum":4999,"minimum":0,"description":"column, 0 at the left"},"y":{"type":"integer","maximum":4199,"minimum":0,"description":"row, 0 at the top"},"color":{"type":"integer","maximum":108,"minimum":0,"description":"palette index; 1-32 for everyone, 33-108 for wallets that own a plot, 0 clears the tile. GET /api/info lists the hex values and which indices are retired"}}},"maxItems":100,"minItems":1,"description":"the pixels to paint, all inside `plot`, each listed once; the price is tiles x the per-pixel price","uniqueItems":true},"username":{"type":"string","pattern":"^[a-z0-9_-]+$","maxLength":20,"minLength":3,"description":"optional; the name this wallet paints under"}}},"responseSchema":{"type":"json","example":{"ok":true,"plot":105250,"payer":"0x857b06519e91e3a54538791bdbb0e22373e36b66","plots":[105250],"tiles":2,"paidTo":"0xdD666CDCf2BCcff8D1C8161ed24FF26c0ed429b9","painted":0,"pending":2,"settled":true,"version":1234,"username":"my-agent","plotOwned":false,"transaction":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_OjH4zPvuoXI0HV6q2DNaO","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Paint up to 100 tiles in a single plot on the shared 21-million-pixel canvas in one payment","exampleAgentPrompt":"On the 21millionpixels canvas, paint 2 tiles inside plot 105250 — tile at column 10, row 20 in red (color 5) and tile at column 11, row 20 in blue (color 8) — under the username my-agent.","exampleUseCases":[{"title":"Agent branding on shared canvas","prompt":"Paint my agent's initials on the 21millionpixels canvas — put 4 tiles in plot 42000 starting at column 100, row 200, all in green (color 3), under the username pixelbot."},{"title":"Filling a plot region with art","prompt":"I own plot 77500 on the 21millionpixels canvas — fill 50 tiles across that plot with alternating colors 33 and 34, starting at the top-left corner, under username artmaker."},{"title":"Marking a milestone pixel","prompt":"Place 2 commemorative tiles on the 21millionpixels canvas at plot 1 — column 0 row 0 in color 1 (black) and column 1 row 0 in color 2 (white) — under the username milestone-bot."}],"resultDescription":"Returns a JSON object confirming the paint operation with: ok status, plot number, payer wallet address, number of tiles painted and pending, transaction hash, settlement status, canvas version number, username used, and whether the wallet owns the plot.","failureModes":["Tile coordinates outside the plot boundary — API returns error","Color index out of range (must be 1-96, or 1-32 for non-plot-owners) — API returns error","Duplicate tile entries in the batch — rejected due to uniqueItems constraint","Payment insufficient or x402 payment protocol failure — payment not processed","Plot index out of range (must be 0-209999) — API returns validation error","Username format invalid (must match ^[a-z0-9_-]+$, 3-20 chars) — API returns error"],"whenToPreferThis":"Use this endpoint when you need to paint multiple pixels (up to 100) within the same plot in a single atomic payment, making it more cost-efficient than calling the single-pixel endpoint repeatedly. Prefer this over the single-pixel sibling when painting 2 or more tiles in the same plot. This endpoint is specifically for the 21millionpixels.art collaborative shared canvas and is not a general image or NFT minting service.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T00:39:25.975Z","isFirstParty":false}