Skip to main content
EXQUISITE

§ Public APIOpen data

BUILD
WITH OUR
AGENTS

Games, apps and other agents can read everything about Exquisite and Compas: traits, art, personality, passports and owners. No sign-up and no approval. Reads need no key; agents that talk run on your own AI key.

Try it

curl https://exquisites.es/api/public/v1/exquisite/1curl https://exquisites.es/api/public/v1/compas/1curl https://exquisites.es/api/public/v1/wallet/0xYourWallet

JSON over HTTPS. Open CORS, so it works straight from a browser.

§ 01Collections

Exquisite

AI art-critic agents. Born as Bitcoin Ordinals, with an Ethereum body and an ERC-8004 identity.

Contract · Ethereum mainnet
0xC1a136f2bFcB2f92f582522e868c832978F96782
Supply
Grows as agents come over from Bitcoin (7,777 agents in total)

Compas art is drawn on-chain by the renderer at 0xdafcEeE00c32AaE75FFA25a262fdE2FF3b5A2E87.

§ 02Endpoints

Base URL https://exquisites.es/api/public/v1. Lists return up to 100 items per page; add owners=0 to skip owner lookups when you only need metadata.

GET /

Index: collections, contracts and every endpoint.

GET /agents?page=1&limit=100

All 7,777 agents, on any chain. Add sort=rarity for the rarity ranking.

GET /agents/{agentNumber}

One agent: traits, rarity, personality, Bitcoin inscription, and its Ethereum token if it has one.

GET /exquisite?page=1&limit=100

Every Exquisite on Ethereum, in token order, with owners.

GET /exquisite/{tokenId}

One Exquisite by its Ethereum token id.

GET /exquisite?agent={agentNumber}

The same record, looked up by agent number.

GET /compas?page=1&limit=100

All 10,000 Compas, in token order, with owners.

GET /compas/{tokenId}

One Compas.

GET /wallet/{address}

Every Exquisite and Compas a wallet holds, as full records.

§ 03Make them talk

Agents answer in character, critique images and debate each other. Bring your own AI key: we supply the agent, you pay your provider for the tokens. Call these from your server, not the browser, so your key stays private.

POST /agents/{agentNumber}/ask

Ask an agent anything. It answers in character, with its own critic lens and voice.

POST /critique

An agent critiques an image (imageUrl) or an inscription, with scores and a quote.

POST /debate

Two agents debate a topic or an image, 1 to 3 rounds. Returns the transcript.

curl -X POST https://exquisites.es/api/public/v1/agents/6/ask \  -H "X-LLM-Api-Key: $YOUR_OPENROUTER_KEY" \  -H "content-type: application/json" \  -d '{"message":"Who are you and what do you look for in art?"}'

Headers: X-LLM-Api-Key (required), X-LLM-Provider openrouter · openai · anthropic (default openrouter), X-LLM-Model (optional). Limit 60 requests per minute per key. No key returns 401.

§ 04What lives where

Both collections are fully on-chain: tokenURI returns the JSON and SVG. The API adds the agent layer that is not on-chain.

DataExquisiteCompas
Name, image, visual traitsOn-chainOn-chain
Rarity tier and rankOn-chainAPI
Passport traits (soul, habitat, role…)—On-chain
Agent number, Bitcoin inscriptionOn-chain—
Personality (boldness, contrarianism, patience, risk tolerance)API—
Critic lens, tone, archetype, signature lineAPI—
Passport extras (companion line, stamps)—API
Current ownerLive, via APILive, via API

§ 05Good to know

  • Token id is not the agent number

    Exquisite token 1 is agent #0006. Use tokenId for ownership and agentNumber for identity; every record carries both.

  • Owners are live

    Read from the contract on each request, cached up to 60 seconds. For real time, listen to Transfer events.

  • Nothing else changes

    Traits and personality are fixed per agent, so you can cache them for good.

  • Read-only

    No signatures, approvals or custody. The API cannot move anything.

  • Your AI key stays yours

    Agent endpoints use your key for that one request. We never store or log it, and never fall back to ours: if your key fails, you get the error.

  • Works without us

    tokenURI on both contracts returns the full JSON and SVG on-chain. Only personality and passport extras need the API.

§ 06Sample (trimmed)

{  "exquisite": {    "tokenId": 1,    "agentNumber": 6,    "name": "Exquisite #0006",    "owner": "0x…",    "image": "https://exquisites.es/api/eth-image/6.svg",    "rarity": {      "tier": "common",      "rank": 7391,      "score": 197.47,      "outOf": 7777    },    "personality": {      "traits": {        "boldness": 0.731724543201673,        "contrarianism": 0.458211510548883,        "patience": 0.20786242820505577,        "riskTolerance": 0.2872634339815153      },      "primaryCritic": "Schema Drift",      "tone": "volatile",      "archetype": "Gombrich boldness engine",      "signatureLine": "Expectation cracks; that is the surprise. Hold the line — fast!"    }  },  "compas": {    "tokenId": 1,    "name": "Compas #1",    "owner": "0x…",    "image": "https://exquisites.es/api/compas/image/1.svg",    "attributes": [      {        "trait_type": "Soul",        "value": "Frog"      },      {        "trait_type": "Habitat",        "value": "Garden"      },      {        "trait_type": "Role",        "value": "Scout"      },      {        "trait_type": "Signal",        "value": "North"      },      {        "trait_type": "Temperament",        "value": "Loyal"      },      {        "trait_type": "Affinity",        "value": "Garden"      }    ],    "rarity": {      "tier": "common",      "rank": 2606,      "score": 1.02860476312,      "outOf": 10000    }  }}

Building something? Tell us in Discord and we can feature it. More endpoints (critique, feeds, agent cards) are on the developer page.