On-Chain CC0mon Data for Builders
The CC0mon API gives you programmatic access to on-chain CC0mon NFT data. Retrieve traits, images, metadata, and ownership for any minted CC0mon.
All data is sourced directly from the Ethereum mainnet smart contract.
Token IDs range from 1 to 10000.
Returns a summary of a CC0mon including name, traits, image URLs, owner, and links. This is the best starting endpoint for most use cases.
curl https://api.cc0mon.com/cc0mon/420
// Response:
{
"tokenId": 420,
"name": "Hydrift",
"description": "A CC0mon living on Ethereum...",
"owner": "0x1234...abcd",
"attributes": [
{ "trait_type": "Energy", "value": "Ocean" },
{ "trait_type": "Name", "value": "Hydrift" },
{ "trait_type": "Rarity", "value": "Common" }
],
"images": {
"svg": "https://api.cc0mon.com/cc0mon/420/image.svg",
"png": "https://api.cc0mon.com/cc0mon/420/image.png"
},
"opensea": "https://opensea.io/assets/ethereum/0xeeb0...9d5f/420"
}
Returns the full NFT metadata JSON, decoded directly from the on-chain tokenURI() output.
Includes name, description, attributes, and the base64-encoded SVG image.
curl https://api.cc0mon.com/cc0mon/6969/metadata
// Response: full on-chain tokenURI JSON
{
"name": "CC0mon #6969",
"description": "...",
"image": "data:image/svg+xml;base64,...",
"attributes": [...]
}
Returns the decoded traits for a CC0mon as a clean JSON object. Each CC0mon has a unique name, energy type, and rarity.
curl https://api.cc0mon.com/cc0mon/69/traits
// Response:
{
"tokenId": 69,
"name": "Gnawshark",
"attributes": [
{ "trait_type": "Energy", "value": "Ocean" },
{ "trait_type": "Name", "value": "Gnawshark" },
{ "trait_type": "Rarity", "value": "Uncommon" }
]
}
Returns the CC0mon artwork as an SVG image, decoded directly from the on-chain data. Use this in any HTML page, game, or app.
curl https://api.cc0mon.com/cc0mon/420/image.svg -o cc0mon.svg
# Use directly in HTML:
<img src="https://api.cc0mon.com/cc0mon/420/image.svg" />
Returns the CC0mon artwork as a 1000×1000 PNG image, rasterized from the on-chain SVG.
Optionally pass ?size=500 to control dimensions (64–2048px).
curl https://api.cc0mon.com/cc0mon/420/image.png -o cc0mon.png
# Custom size:
curl https://api.cc0mon.com/cc0mon/420/image.png?size=500 -o cc0mon_500.png
Returns the current Ethereum address that owns a specific CC0mon.
curl https://api.cc0mon.com/cc0mon/420/owner
// Response:
{
"tokenId": 420,
"owner": "0x1234567890abcdef1234567890abcdef12345678"
}
Returns basic information about the CC0mon smart contract: name, symbol, total supply, and links.
curl https://api.cc0mon.com/contract
// Response:
{
"name": "CC0mon",
"symbol": "CC0MON",
"address": "0xeeb036dbbd3039429c430657ed9836568da79d5f",
"network": "Ethereum Mainnet",
"totalSupply": 10000,
"maxTokenId": 10000,
"etherscan": "https://etherscan.io/address/0xeeb0...9d5f",
"opensea": "https://opensea.io/collection/cc0mon"
}
Returns the full list of all 260 unique CC0mon species with their name, energy type, and rarity. This is a static list — no on-chain calls required.
curl https://api.cc0mon.com/registry
// Response:
{
"total": 260,
"cc0mon": [
{
"number": 1,
"name": "Drillipede",
"energy": "Earth",
"rarity": "Common"
},
...
]
}
Returns a mapping of each CC0mon species to a representative token ID and image URLs. Use this to load images for all 260 species in a single request — no scanning required. The map is pre-built at server startup and cached permanently.
curl https://api.cc0mon.com/registry/images
// Response:
{
"total": 260,
"mapped": 260,
"images": {
"1": {
"name": "Drillipede",
"tokenId": 36,
"svg": "https://api.cc0mon.com/cc0mon/36/image.svg",
"png": "https://api.cc0mon.com/cc0mon/36/image.png"
},
"2": { ... },
...
}
}
// Use in HTML:
<img src="https://api.cc0mon.com/cc0mon/36/image.svg" alt="Drillipede" />
Returns a full CC0mon collection checklist for any Ethereum wallet address. Shows which of the 260 species the wallet has collected, which token IDs they hold, progress stats, and a breakdown by energy type. Requires an Alchemy RPC URL.
curl https://api.cc0mon.com/collector/0xb32b...dcd49
// Response:
{
"address": "0xb32bd383a856...",
"totalCC0mon": 260,
"collected": 8,
"missing": 252,
"progress": "3.1%",
"totalTokensHeld": 8,
"byEnergy": {
"Earth": { "total": 13, "collected": 0 },
...
},
"checklist": [
{
"number": 14,
"name": "Toxarach",
"energy": "Fossil",
"rarity": "Common",
"collected": true,
"tokenIds": [7848]
},
...
]
}
Every CC0mon has one of 16 energy types. Filter by energy using the traits endpoint.
Requests are rate-limited per IP address using a sliding window.
| Limit | Value |
|---|---|
| Requests | 60 per minute |
| Window | Sliding 60 seconds |
Rate limit headers are included in every response:
X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After (on 429).
| Status | Meaning |
|---|---|
400 | Invalid token ID (must be integer 1–10000) |
404 | Token not found or not yet minted |
429 | Rate limit exceeded |
500 | Internal server error |
// Error response format:
{ "error": "Invalid token ID: \"abc\". Must be an integer 1-10000." }
Fetch CC0mon data from any language or tool. Here are some examples to get you started:
# Fetch a CC0mon's traits
curl https://api.cc0mon.com/cc0mon/420/traits
# Download an SVG image
curl https://api.cc0mon.com/cc0mon/42/image.svg -o cc0mon_420.svg
# Use in JavaScript
const res = await fetch('https://api.cc0mon.com/cc0mon/420');
const cc0mon = await res.json();
console.log(cc0mon.name); // "Hydrift"
console.log(cc0mon.attributes); // [{trait_type: "Energy", value: "Ocean"}, ...]
# Embed in HTML
<img src="https://api.cc0mon.com/cc0mon/420/image.svg" alt="CC0mon #420" />
# Use in Python
import requests
cc0mon = requests.get('https://api.cc0mon.com/cc0mon/420').json()
print(cc0mon['name']) # "Hydrift"
CC0mon is Creative Commons Zero. That means you can use the art and data for anything. Here are some ideas to get you started: