lightyear-cryptopunks
Registry code: 4b9593e04e628b51
Browse traits, filter 10K punks, listings, bids, Merkle roots, and bid pricing for CryptoPunks.
from a public catalogue that lists it, not from the operator
- endpoint
- https://punks.lightyear.build/api/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is lightyear-cryptopunks live?
- Yes — it answered the hub's last check (checked 19m ago). It answered 99% of checks over the last 30 days.
- Is lightyear-cryptopunks free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does lightyear-cryptopunks have?
- 11 tools: compute_merkle_root, resolve_merkle_root, get_bids_for_merkle_root, get_bids_for_punk, get_punk_details, browse_traits, browse_types, filter_punks, ….
- Is lightyear-cryptopunks safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 99.5%· all time 99.5%
last good check
of 11 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- down → live
- topic
- crypto & onchain tokens & nft
- used for
- filter cryptopunks by traits
- get cryptopunk listings and floor price
- get bids for a punk
- recommend a bid price
- compute a merkle root for punk ids
- takes → gives
- text, data → data
- tools
- 11 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
browse_traits reads open 12h ago
List all CryptoPunk traits with their counts. Optionally filter by type to see how many punks of that type have each trait. Rate limit: 10 per 10 min (read bucket — shared with browse_types, get_punk_details, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "type": { "type": "string", "description": "Filter counts to a specific type (e.g. 'Male', 'Zombie')" } }, "additionalProperties": false }arguments 11 linesbrowse_types reads open 12h ago
List all CryptoPunk type categories with their counts. Rate limit: 10 per 10 min (read bucket — shared with browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linesfilter_punks reads open 12h ago
Filter CryptoPunks by type and traits. Returns matching punk IDs and their Merkle root. Rate limit: 5 per 10 min (compute bucket — shared with compute_merkle_root, resolve_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "types": { "type": "array", "items": { "type": "string" }, "description": "Type names to include (e.g. ['Male', 'Zombie']). Empty = all types." }, "matchMode": { "enum": [ "all", "any" ], "type": "string", "default": "all", "description": "'all' = punk must have every included trait, 'any' = at least one" }, "excludedTraits": { "type": "array", "items": { "type": "string" }, "description": "Traits to exclude" }, "includedTraits": { "type": "array", "items": { "type": "string" }, "description": "Traits to include" } }, "additionalProperties": false }arguments 37 linesget_floor_price reads open 7h ago
Get the current floor ask price from the native CryptoPunks marketplace. Excludes restricted (onlySellTo) and zero-value listings. Returns `totalActive` (same denominator as get_listings). Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_bids_for_punk, get_bids_for_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linesget_listings reads open 7h ago
Get currently listed CryptoPunks from the native marketplace. By default returns only publicly buyable listings (excludes restricted onlySellTo and zero-value entries); pass `includeRestricted: true` to include private bundle sales. Optionally filter by price range. Returns `totalActive` (publicly buyable listings, same denominator as get_floor_price) and `matchedCount` (after your filters). Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "default": 50, "maximum": 200, "minimum": 1, "description": "Max results (default 50)" }, "maxPriceEth": { "type": "number", "description": "Maximum price in ETH" }, "minPriceEth": { "type": "number", "description": "Minimum price in ETH" }, "includeRestricted": { "type": "boolean", "default": false, "description": "Include restricted (onlySellTo) and zero-value listings. Default false — matches get_floor_price." } }, "additionalProperties": false }arguments 27 linesget_bid_recommendation reads open 7h ago
Analyze market data and recommend a bid price range for a CryptoPunk trait selection. Combines floor price, competing bids, and set composition into actionable guidance. `composition` lists only the traits that define the selection; use `absentTraits` for a full exclusion list when needed. Rate limit: 1 per 1 min (recommend bucket).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "types": { "type": "array", "items": { "type": "string" }, "description": "Type names to filter (e.g. ['Male', 'Zombie'])" }, "punkIds": { "type": "array", "items": { "type": "integer", "maximum": 9999, "minimum": 0 }, "description": "Explicit punk IDs (overrides trait filters)" }, "matchMode": { "enum": [ "all", "any" ], "type": "string", "default": "all" }, "excludedTraits": { "type": "array", "items": { "type": "string" }, "description": "Traits to exclude" }, "includedTraits": { "type": "array", "items": { "type": "string" }, "description": "Traits to include" } }, "additionalProperties": false }arguments 45 linescompute_merkle_root reads unknown never probed
Compute the Merkle root for a set of CryptoPunk IDs. The root matches the on-chain Solady MerkleProofLib encoding used by the Stash contract. Rate limit: 5 per 10 min (compute bucket — shared with filter_punks, resolve_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "punkIds" ], "properties": { "punkIds": { "type": "array", "items": { "type": "integer", "maximum": 9999, "minimum": 0 }, "maxItems": 10000, "minItems": 1, "description": "Punk IDs to include in the Merkle tree (1-10000)" } }, "additionalProperties": false }arguments 21 linesresolve_merkle_root reads unknown 20h ago
Reverse-engineer a Merkle root back to its punk IDs and inferred trait selection. ONLY works for roots that already have at least one bid in the CryptoPunks Bids API — this tool looks bids up by root, then derives trait config from the resulting punk set. Returns `resolved: false` for unknown roots; constructing a root locally and passing it here will not work. Rate limit: 5 per 10 min (compute bucket — shared with filter_punks, compute_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merkleRoot" ], "properties": { "merkleRoot": { "type": "string", "pattern": "^0x[0-9a-fA-F]{64}$", "description": "Merkle root to resolve (0x-prefixed, 32 bytes hex)" } }, "additionalProperties": false }arguments 15 linesget_bids_for_merkle_root reads unknown 22h ago
Get pending EIP-712 bids matching a specific Merkle root. Useful for seeing competition on a trait-based bid set. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_punk).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "merkleRoot" ], "properties": { "limit": { "type": "integer", "default": 5, "maximum": 20, "minimum": 1, "description": "Max bids to return (default 5)" }, "merkleRoot": { "type": "string", "pattern": "^0x[0-9a-fA-F]{64}$", "description": "Merkle root (0x-prefixed, 32 bytes hex)" } }, "additionalProperties": false }arguments 22 linesget_bids_for_punk reads unknown 22h ago
Get pending EIP-712 bids that include a specific CryptoPunk. Returns bids from the CryptoPunks Bids API. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_punk_details, get_listings, get_floor_price, get_bids_for_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "punkId" ], "properties": { "limit": { "type": "integer", "default": 5, "maximum": 20, "minimum": 1, "description": "Max bids to return (default 5)" }, "punkId": { "type": "integer", "maximum": 9999, "minimum": 0, "description": "Punk ID to look up bids for" } }, "additionalProperties": false }arguments 23 linesget_punk_details reads unknown 22h ago
Get metadata for specific CryptoPunks: type, traits with rarity percentages, and permalink. Rate limit: 10 per 10 min (read bucket — shared with browse_types, browse_traits, get_listings, get_floor_price, get_bids_for_punk, get_bids_for_merkle_root).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "punkIds" ], "properties": { "punkIds": { "type": "array", "items": { "type": "integer", "maximum": 9999, "minimum": 0 }, "maxItems": 100, "minItems": 1, "description": "Punk IDs to look up (1-100)" } }, "additionalProperties": false }arguments 21 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id4b9593e04e628b51.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/4b9593e04e628b51/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/4b9593e04e628b51?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.