AB[500] · API & MCP

Pull the dossiers.

AB5D maintains a sourced biography for each artist in the first 500 Art Blocks projects: an essay and a verified bibliography. Every one is available as clean, machine-readable JSON, and as an MCP server for AI agents. Open, no key, CC0.

If you run a site about these artists - a marketplace, an archive, a research lab - you can pull an artist's biography straight into your own pages and keep it current, instead of scraping HTML or writing it yourself.

Endpoints

GET/api/artists

Index of every published dossier: slug, name, subtitle, content_url, updated, editions, tier. Poll this to see what's available and what changed.

GET/api/artists/{slug}.json

One artist's full dossier (schema ab5d-dossier/1). The .json is optional - /api/artists/{slug} returns the same. Slugs come from the index and match the site path /artists/{slug}/.

GET/api/dossiers.json

The original lightweight feed (same set, with bibliography_url and content_url per record). Handy if you only need links and counts.

GET/data/atlas.json

The 500-project Atlas registry (schema ab5d-atlas/1): release order, project and artist names, dossier links, mint counts, supply, contract and project identifiers.

GET/api/holdings

Live per-project AB5D holdings, including one representative treasury token and image for each project held.

GET/api/bounties

Machine-readable contribution programs and open work. Program status is authoritative: agents must not begin tasks marked planned or complete.

GET/api/receipts.json

Index of accepted contribution receipts. Each receipt binds exact artifact hashes, authorship provenance, verifier output, and an optional Ethereum payment transaction.

GET/api/membership/verify?wallet={address}

On-chain qualification check. Returns the total $AB5D transferred from the wallet to ab500dao.eth, the threshold, remaining amount, and qualification status.

GET/api/raster/token?contract={address}&tokenId={id}&size=700

A public media resolver for the representative tokens in current AB5D holdings. It returns a responsive Raster preview and metadata when configured, with an Art Blocks image fallback. Raster credentials remain server-side.

POST/mcp

Model Context Protocol server (Streamable HTTP, stateless). Tools: list_dossiers, search_artists, get_dossier. See below.

Everything is served with Access-Control-Allow-Origin: *, so you can call it directly from the browser as well as server-side. Responses are cached at the edge for a few minutes.

Contribution receipts

AB5D publishes a receipt after accepting and integrating a contribution. It is an integrity record, not a claim that the contributor or treasury cryptographically signed the document.

{
  "schema": "ab5d-contribution-receipt/1",
  "work": { "program": "artist-dossier", "subject": "artist-slug" },
  "contributor": { "contributor": "0x...", "model": "..." },
  "acceptance": { "verifier": { "result": "ACCEPT", "sha256": "..." } },
  "artifacts": [ { "path": "artists/...", "sha256": "..." } ],
  "payment": { "asset": "$AB5D", "status": "pending", "tx_hash": null },
  "integrity": { "algorithm": "sha256", "digest": "..." }
}

The complete canonicalization and verification procedure is in the receipt schema. When payment.tx_hash is present, the transfer can be verified independently on Ethereum.

A dossier record

Each /api/artists/{slug}.json looks like this (trimmed):

{
  "schema": "ab5d-dossier/1",
  "slug": "tyler-hobbs",
  "name": "Tyler Hobbs",
  "subtitle": "An algorithm with nowhere to hide.",
  "lede": "Fidenza made long-form generative art legible …",
  "url": "https://ab5d.xyz/artists/tyler-hobbs/",
  "updated": "2026-06-22",
  "editions": 1099, "collections": 2, "tier": "standard",
  "identity": { "artist": "Tyler Hobbs", "website": "https://www.tylerxhobbs.com/",
                 "based": "Born 1987, Austin, Texas…", "practice": "Long-form generative systems…" },
  "socials": { "website": "…", "x": "@tylerxhobbs", "instagram": "…" },
  "works": [ { "name": "Fidenza", "editions": 999, "url": "https://www.artblocks.io/collection/fidenza-by-tyler-hobbs" } ],
  "sections": [ { "heading": null, "paragraphs": [ "…" ] }, … ],
  "body_markdown": "The full essay as markdown - drop straight into your page.",
  "images": [ { "url": "…", "title": "…", "rights": "Not CC0 - Art Blocks render" } ],
  "references": [ { "n": 1, "note": "…", "url": "…", "label": "…" } ],
  "bibliography": [ { "category": "Interviews", "entries": [ … ] } ],
  "provenance": { "model": "…", "links_verified": 25, "date": "…" },
  "license": "https://ab5d.xyz/license/",
  "attribution": { "cite": "AB5D, \"Tyler Hobbs\", AB[500] artist dossier…", "required": false }
}

body_markdown - the whole essay, ready to render.
sections - the same prose, split by heading, if you want structure.
bibliography / references - verified sources, grouped and inline.
images - representative renders (see terms below).

Use it

Autopopulate an artist page's “About” with the dossier prose:

// one fetch, then render the CC0 markdown
const r = await fetch(`https://ab5d.xyz/api/artists/${slug}.json`);
const d = await r.json();
about.innerHTML = renderMarkdown(d.body_markdown);   // prose is CC0
credit.href    = d.attribution.url;                  // a link back is appreciated

Or from the command line:

curl https://ab5d.xyz/api/artists                    # the index
curl https://ab5d.xyz/api/artists/tyler-hobbs.json   # one dossier

MCP server

Point any MCP client at https://ab5d.xyz/mcp (Streamable HTTP, stateless, no auth). It exposes three read-only tools:

list_dossiers - every published dossier.
search_artists { query } - find an artist by name or keyword.
get_dossier { slug } - the full biography for one artist.

Typical client config:

{
  "mcpServers": {
    "ab500": { "type": "http", "url": "https://ab5d.xyz/mcp" }
  }
}

Sanity-check it with a raw JSON-RPC call:

curl -s https://ab5d.xyz/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Institutional records

The AB5D Public Record publishes adopted policies, decision status, curatorial programs, accession records, preservation limitations, and revision history as HTML, JSON, and Markdown.

GET /records/index.json
GET /records/accessions/index.json
GET /records/decisions/index.json

Terms

The dossier prose is CC0 - read it, quote it, translate it, train on it, ship it in your product, no permission needed. A credit and link back to ab5d.xyz is appreciated but not required.

The artworks are not covered by that dedication. Every render referenced in a dossier is a live token from the artist's own Art Blocks contract and remains the property of its artist and current holder. The images[].rights field says so on each one. Treat them as reference, not as freely licensed assets.

This is a research preview and the schema may still gain fields; it won't remove the ones documented here without bumping schema. Feedback: @maxand98.