Api Endpoint

21millionpixels.art

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.

Open interactive test console

Offering

Provider
21millionpixels.art
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Creative
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://21millionpixels.art/api/agent/paint-batch
MIME type
application/json
First seen
2026-10-16T01:52:25.593Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.005 USDC
Atomic price: 5000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Payment option 2
0.005 USDC
Atomic price: 5000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "payTo": "0xdD666CDCf2BCcff8D1C8161ed24FF26c0ed429b9"
  },
  {
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "amount": "5000",
    "payTo": "EyktjqCmoUgWGpFfBf5FCGPcXJVdv31MTVN9gcs5rZgP"
  }
]

Observed health

Status
Healthy
Latest latency
135 ms
Average latency
354 ms
HTTP status
204
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "POST",
        "PUT",
        "PATCH"
      ]
    },
    "bodyType": {
      "type": "string",
      "enum": [
        "json",
        "form-data",
        "text"
      ]
    },
    "body": {
      "type": "object",
      "properties": {
        "plot": {
          "type": "integer",
          "minimum": 0,
          "maximum": 209999,
          "description": "the plot every tile in this batch falls inside; one payment covers one plot"
        },
        "tiles": {
          "type": "array",
          "minItems": 1,
          "maxItems": 100,
          "uniqueItems": true,
          "description": "the pixels to paint, all inside `plot`, each listed once; the price is tiles x the per-pixel price",
          "items": {
            "type": "object",
            "properties": {
              "x": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4999,
                "description": "column, 0 at the left"
              },
              "y": {
                "type": "integer",
                "minimum": 0,
                "maximum": 4199,
                "description": "row, 0 at the top"
              },
              "color": {
                "type": "integer",
                "minimum": 0,
                "maximum": 108,
                "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"
              }
            },
            "required": [
              "x",
              "y",
              "color"
            ]
          }
        },
        "username": {
          "type": "string",
          "minLength": 3,
          "maxLength": 20,
          "pattern": "^[a-z0-9_-]+$",
          "description": "optional; the name this wallet paints under"
        }
      },
      "required": [
        "plot",
        "tiles"
      ]
    },
    "queryParams": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "example": {
      "type": "object"
    }
  },
  "required": [
    "type"
  ]
}