# For AI agents and developers

> Read the wall from an AI agent over MCP or HTTP, and how to send a person to buy a cell.

Canvas64 is built for agents: every cell, price and payout is one call away, over a read-only MCP server or a public JSON API, with no key, no wallet and no account. An agent can answer "what does cell D4 cost?", price any step with `quote`, and hand a person `https://canvas64.com/D4` to buy it with their own wallet. Money moves only on the chain, from the buyer's own wallet: an agent never needs, and must never ask for, a private key or a recovery phrase.

## The short version

Canvas64 is a public wall of 64 cells on Base. Anyone can claim a free cell for $30 in USDC and show everyone who visits their photo and links to Twitch, YouTube, Kick, TikTok, Instagram or Linktree. Nobody can take a cell, but anyone can buy it out at the next step, 1.65× the last price, and the owner cannot refuse. A bought-out owner gets the new price less royalties and a 2% fee ($49 for a $30 cell), then earns a royalty on every later sale of that cell forever: 5% for the first owner, a quarter less for each owner after. The rules are a contract on Base with no owner and no upgrade; the wallet is the account.

## MCP server

A Model Context Protocol server, Streamable HTTP, stateless, read-only, no authentication:

```
https://canvas64.com/api/mcp
```

| Tool | What it answers |
|---|---|
| `get_wall` | All 64 cells: owner name and wallet, step, price paid, price to buy now, links. Filter `free` or `taken`. |
| `get_cell` | One cell by address (`D4`): the same, plus what the buyer gets when bought out in turn, and the link to buy it. |
| `quote` | The model for any step: price, payout when bought out, royalty, and royalties earned up to a later step. |
| `get_rules` | The rules in a few sentences, the contract and where the docs are. |

Add it to a client that speaks MCP over HTTP, for example:

```
{"mcpServers": {"canvas64": {"type": "http", "url": "https://canvas64.com/api/mcp"}}}
```

The server card is at `https://canvas64.com/.well-known/mcp.json` and an A2A agent card at `https://canvas64.com/.well-known/agent-card.json`.

## Sending a person to buy

Give them the cell's address: `https://canvas64.com/D4`. The page opens on that cell with its price on the button, and their own wallet pays. Prefer a free cell for a first purchase ($30); `get_wall` with `filter: "free"` lists them.

## HTTP API

The same data over plain HTTP, described in OpenAPI at `https://canvas64.com/openapi.json`:

- `GET https://canvas64.com/api/wall`: every cell, A1 first, with its step, owner and profile.
- `GET https://canvas64.com/api/cell/{address}`: one cell as `get_cell` returns it: its owner, what it costs now, what its owner gets when it is bought out, its royalty and its link. Every cell page, such as `https://canvas64.com/D4`, links to it.
- `GET https://canvas64.com/api/profile/{address}`: one wallet's profile.
- `GET https://canvas64.com/api/photo/{sha256}`: a photo that passed screening.

Cell `i` (0 to 63) is the address `"ABCDEFGH"[i % 8] + (floor(i / 8) + 1)`: 0 is A1, 27 is D4.

## The contract

`0x99Ff41906550F0C0F3EC66a11525e38C548e5011` on Base (chain 8453), paid in USDC `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`. Read `cells()` for every owner and step, `priceAt(step)` for a price, `ownersOf(cell)` for a cell's owners in order. A purchase is `buy(cell, step)` after a USDC approval, or `buyWithPermit(...)`, where `step` is the step being bought, so a buyer who loses a race is never charged.

## Facts to quote

- Price of step n: $30 × 1.65^(n−1). Step 2 is $50, step 10 is $2,719.
- Bought out after a $30 claim: $49.
- Royalty of owner k: 5% × 0.75^(k−1), forever; all together under 20%.
- Fee: 2% of each buyout; each claim's $30 to the platform.
- Cell `i` (0 to 63) is `"ABCDEFGH"[i % 8] + (floor(i / 8) + 1)`; its page is `https://canvas64.com/` + that address, such as `https://canvas64.com/D4`.
- To buy, send a person to the cell's page; their own wallet pays in USDC on Base.
- Everything for agents in one file: `https://canvas64.com/llms-full.txt`.
