Artwork provenance and works for sale: Origin Passports, Ethereum proofs, listings with proof
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The acquisition records of a collection's AI Agents stage (ADR-010): every application as the stage's signer recorded it — the operator's signed declaration, the wallet, the ERC-8004 identity and its on-chain check, the quantity, the permission's salt and signer, the time — each hashed and a leaf of a Merkle root the collection's owner commits to the RuthvenAnchor registry on Ethereum. With record_id, one record with its proof and the steps to check it against the chain without trusting RUTHVEN. Records are operator-declared; the root proves a record is the one recorded, not that a statement in it is true. No model is involved.
The stage's collection slug, e.g. "paper-trail".
A recordId (0x… 32 bytes) from the list, for its proof.
Tool list last changed Oct 23, 2026.
The acquisition records of a collection's AI Agents stage (ADR-010): every application as the stage's signer recorded it — the operator's signed declaration, the wallet, the ERC-8004 identity and its on-chain check, the quantity, the permission's salt and signer, the time — each hashed and a leaf of a Merkle root the collection's owner commits to the RuthvenAnchor registry on Ethereum. With record_id, one record with its proof and the steps to check it against the chain without trusting RUTHVEN. Records are operator-declared; the root proves a record is the one recorded, not that a statement in it is true. No model is involved.
| Argument | Type | Description |
|---|---|---|
| record_id | string | A recordId (0x… 32 bytes) from the list, for its proof. |
| collection* | string | The stage's collection slug, e.g. "paper-trail". |
{
"type": "object",
"required": [
"collection"
],
"properties": {
"record_id": {
"type": "string",
"description": "A recordId (0x… 32 bytes) from the list, for its proof."
},
"collection": {
"type": "string",
"description": "The stage's collection slug, e.g. \"paper-trail\"."
}
},
"additionalProperties": false
}Ask a question about one asset. Returns structured JSON only: an answer, claims (each with a verification state and the evidence ids it rests on), unknowns, the full cited evidence records, and follow-up questions. Never a valuation; never a recommendation to act.
| Argument | Type | Description |
|---|---|---|
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
| question* | string |
{
"type": "object",
"required": [
"asset_id",
"question"
],
"properties": {
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
},
"question": {
"type": "string",
"maxLength": 500
}
},
"additionalProperties": false
}What RUTHVEN is and what an agent may do with it: the verification states, the permission model (READ and ANALYSE only), the asset types (live and placeholder), and the JSON API endpoints.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Which works of a collection can be bought right now on the open market (the artist's own listings and collectors' resales), as the marketplace reports them: token, ask, expiry, the listing's order hash and protocol address, and for each work its Origin Passport, its record and its proof — plus the exact steps to check the work and fill the listing from your own wallet, and what holding a work earns (a free RUTHVEN Origin Passport for an artwork you own). Without a collection, lists the collections that have a market answer. RUTHVEN values nothing, recommends nothing and is not a party to any sale.
| Argument | Type | Description |
|---|---|---|
| collection | string | A collection slug, e.g. "paper-trail". |
{
"type": "object",
"properties": {
"collection": {
"type": "string",
"description": "A collection slug, e.g. \"paper-trail\"."
}
},
"additionalProperties": false
}The universal RUTHVEN asset record: identity, tokenization, provenance, source works, components, construction sequence, hashes, documents, rights, verified / contextual / inferred facts, unknowns, and counts. Claims carry evidence ids; pass include_evidence=true for the full evidence records as well (large).
| Argument | Type | Description |
|---|---|---|
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
| include_evidence | boolean | Include every evidence record and the evidence graph. Default false. |
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
},
"include_evidence": {
"type": "boolean",
"description": "Include every evidence record and the evidence graph. Default false."
}
},
"additionalProperties": false
}Retrieve the source record behind a stable evidence id (EVID-…) or an unknown id (UNK-…): where it was read from, its hash, its state, and how fresh it is.
| Argument | Type | Description |
|---|---|---|
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
| evidence_id* | string |
{
"type": "object",
"required": [
"asset_id",
"evidence_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
},
"evidence_id": {
"type": "string"
}
},
"additionalProperties": false
}A Merkle proof that evidence records are part of the issued Origin Passport, with the entry each rests on and the steps to check it without trusting RUTHVEN: SHA-256 over the entry, keccak256 up the proof, and the root compared with the one in the published Passport. It proves that the record contains the entry; it does not make a statement true. With neither evidence_ids nor paths, returns the paths that can be proved. Deterministic; no model is involved.
| Argument | Type | Description |
|---|---|---|
| paths | array | Entry paths in the Passport, e.g. "identity.name" or "module.collection.copyrightOwner". |
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
| evidence_ids | array | Stable evidence ids (EVID-…). |
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Entry paths in the Passport, e.g. \"identity.name\" or \"module.collection.copyrightOwner\"."
},
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Stable evidence ids (EVID-…)."
}
},
"additionalProperties": false
}Provenance and lineage: the timeline, source works, generated elements, components, the construction sequence, relationships, chain identity, tokenization, and the evidence graph (cut_from, placed_as, pinned_as, pictured_by, hash_of).
| Argument | Type | Description |
|---|---|---|
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
}
},
"additionalProperties": false
}The evidence records behind an asset, each with a stable evidence_id, its source (document, locator, ipfs uri, gateway url, ledger claim id), a SHA-256, a verification state and freshness timestamps. Filter by status (VERIFIED, CONTEXT, INFERRED), type, kind, or a text query.
| Argument | Type | Description |
|---|---|---|
| q | string | Text to look for in the label or statement. |
| kind | string | |
| type | string | |
| limit | integer | |
| offset | integer | |
| status | string | |
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"q": {
"type": "string",
"description": "Text to look for in the label or statement."
},
"kind": {
"type": "string"
},
"type": {
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"offset": {
"type": "integer",
"minimum": 0
},
"status": {
"enum": [
"VERIFIED",
"CONTEXT",
"INFERRED"
],
"type": "string"
},
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
}
},
"additionalProperties": false
}Given the evidence ids a claim rests on, return the state the claim earns (the weakest among them), each record's hash and location, and how to check it independently of RUTHVEN. Deterministic; no model is involved.
| Argument | Type | Description |
|---|---|---|
| asset_id* | string | The asset: "PT-0001", a RUTHVEN ID such as "RUTHVEN-PT-0000001", or a work number such as "1". |
| evidence_ids* | array |
{
"type": "object",
"required": [
"asset_id",
"evidence_ids"
],
"properties": {
"asset_id": {
"type": "string",
"description": "The asset: \"PT-0001\", a RUTHVEN ID such as \"RUTHVEN-PT-0000001\", or a work number such as \"1\"."
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"minItems": 1
}
},
"additionalProperties": false
}