{
  "schema": "ruthven.agent-stage.records/1",
  "collection": "paper-trail",
  "stage": "AI Agents",
  "what": "Every application to the AI Agents stage, as the stage's signer recorded it: the operator's signed declaration, the wallet, the ERC-8004 identity and the result of its on-chain check, the quantity, the permission's salt and signer, and the time. Each record is hashed and is a leaf of the Merkle root here. The collection's owner commits that root to the RuthvenAnchor registry on Ethereum; a record then proves itself against the chain, without trusting RUTHVEN.",
  "scheme": "ruthven-agent-acquisition-merkle-v1",
  "collectionId": "0xd2f87d6ea4f3618e7ce79a056abb4800f2c804f0d0f9230daaf915b73c3b48da",
  "collectionIdOf": "keccak256(\"ruthven:agent-stage:paper-trail\")",
  "root": "0x5a7981fde2f5be5d6fe3f7f2b0fd3b8bb84ca77acd8fe0bbb98241b4963f316b",
  "leafCount": 2,
  "builtAt": "2026-10-07T11:01:12.424Z",
  "anchor": {
    "status": "ANCHORED",
    "chain": "ethereum",
    "registry": "0xcaaa85a114586009dedc0b887b0e756d5f55017c",
    "collectionId": "0xd2f87d6ea4f3618e7ce79a056abb4800f2c804f0d0f9230daaf915b73c3b48da",
    "collectionIdOf": "keccak256(\"ruthven:agent-stage:paper-trail\")",
    "root": "0x5a7981fde2f5be5d6fe3f7f2b0fd3b8bb84ca77acd8fe0bbb98241b4963f316b",
    "blockNumber": 26140187,
    "blockTimestamp": "2026-10-07T11:23:59.000Z",
    "setAt": "2026-10-07T11:23:59.000Z",
    "frozen": false,
    "note": "The root here equals passportRoot(collectionId) on the registry, read at block 26140187. A record whose proof folds to it is the one recorded; the root does not make any statement in it true."
  },
  "howToCheck": [
    "Write the record as JSON with object keys sorted, arrays in order and no whitespace (undefined omitted); take its SHA-256. It must equal recordHash.",
    "leaf = keccak256( bytes32(recordId) ++ bytes32(that SHA-256) ). It must equal leaf.",
    "Fold the proof: for each sibling in order, node = keccak256( smaller ++ larger ) of the pair (node, sibling), compared as unsigned integers. The result must equal root.",
    "On ethereum, call passportRoot(0xd2f87d6ea4f3618e7ce79a056abb4800f2c804f0d0f9230daaf915b73c3b48da) on the registry 0xcaaa85a114586009dedc0b887b0e756d5f55017c; it must equal root. (The registry's verifyPassport() is for Passport leaves and does not take a bytes32 record id; fold the proof yourself.)",
    "Recover the signer of declaration.statement from declaration.signature (EIP-191 personal_sign); it must be the record's wallet.",
    "For an ERC-8004 identity, call getAgentWallet(agentId) and ownerOf(agentId) on the Identity Registry; one of them must be the wallet."
  ],
  "note": "A record is operator-declared: it says what was declared and what was checked, and nothing else. The root proves a record is the one recorded; it does not make any statement in it true. RUTHVEN AI LIMITED values nothing and recommends nothing.",
  "records": [
    {
      "recordId": "0xd6ab2c974716b285f2a8dc48b372b701372c67fe7a5c6743bd6ba709ddb57540",
      "recordHash": "sha256:8c352a449e46b6bf8a8fd8cbe2c0edc10ffb0861e4e93a42355866dc39857b66",
      "leaf": "0x4dec9e72c724269c788c80aac60977ad42638d21d568eeba066dacd291e5fea3",
      "record": {
        "schema": "ruthven.agent-acquisition/1",
        "recordId": "0xd6ab2c974716b285f2a8dc48b372b701372c67fe7a5c6743bd6ba709ddb57540",
        "collection": "paper-trail",
        "stage": "AI Agents",
        "source": {
          "store": "artist-site",
          "site": "missalsimpson.com",
          "key": "2026-10-07T10:37:05.503Z-0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
          "mode": "signer"
        },
        "wallet": "0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
        "quantity": 1,
        "declaration": {
          "operator": "RUTHVEN AI LIMITED (studio test)",
          "agent": "paper-trail-agent-example, RUTHVEN studio test agent 52348",
          "date": "2026-10-07",
          "statement": "I am the operator of an AI agent. The wallet 0x85cDB1F2eF8b99be21b126F43A57E364c57f54f6 is operated by that agent to acquire PAPER TRAIL works in the AI Agents stage. Operator: RUTHVEN AI LIMITED (studio test). Agent: paper-trail-agent-example, RUTHVEN studio test agent 52348. Date: 2026-10-07. I consent to this declaration being recorded publicly with the acquisition.",
          "signature": "0xa7bcbd9559379a75e003b33fcf3a967d5f65482cc6232b3cc7c5a25fd84af8fb798cfed874cc57b9631fee44a8071a755d759a6966122a98cb59298b3c46f8831b"
        },
        "identity": {
          "erc8004": {
            "registry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
            "agentId": "52348"
          },
          "check": {
            "status": "VERIFIED",
            "detail": "the identity's wallet or owner is the minting wallet",
            "registry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
            "agentId": "52348",
            "agentWallet": "0x85cDB1F2eF8b99be21b126F43A57E364c57f54f6",
            "owner": "0x85cDB1F2eF8b99be21b126F43A57E364c57f54f6"
          }
        },
        "permission": {
          "granted": true,
          "status": 200,
          "error": null,
          "signer": "0x08307d5089d07E6e3c31A417B16F56C109a9fC62",
          "salt": "95409339131847560367220203633158964632051014900434421611375427089039169485019"
        },
        "recordedAt": "2026-10-07T10:37:05.503Z"
      },
      "checks": {
        "signatureRecovers": true,
        "identity": {
          "status": "VERIFIED",
          "agentWallet": "0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
          "owner": "0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
          "blockNumber": "26140073",
          "blockTimestamp": "2026-10-07T11:01:11.000Z"
        }
      },
      "acquisitions": [],
      "proof": "https://ruthven.ai/api/ruthven/agent-stage/paper-trail/records/0xd6ab2c974716b285f2a8dc48b372b701372c67fe7a5c6743bd6ba709ddb57540/proof"
    },
    {
      "recordId": "0x6bd1ad8afb0e85a8b91faaab776b23e2edcd87d03068584db25c68ca55d4dd24",
      "recordHash": "sha256:ec522721dabd852eb3623d1240064db0719d74141232c25da02eff2e94166255",
      "leaf": "0xa2885453e6e669d77be8daa1807632d62a6b068a7acd4abe538c84d0be8f098f",
      "record": {
        "schema": "ruthven.agent-acquisition/1",
        "recordId": "0x6bd1ad8afb0e85a8b91faaab776b23e2edcd87d03068584db25c68ca55d4dd24",
        "collection": "paper-trail",
        "stage": "AI Agents",
        "source": {
          "store": "artist-site",
          "site": "missalsimpson.com",
          "key": "2026-10-07T10:37:57.472Z-0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
          "mode": "signer"
        },
        "wallet": "0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
        "quantity": 1,
        "declaration": {
          "operator": "RUTHVEN AI LIMITED (studio test)",
          "agent": "paper-trail-agent-example, RUTHVEN studio test agent 52348",
          "date": "2026-10-07",
          "statement": "I am the operator of an AI agent. The wallet 0x85cDB1F2eF8b99be21b126F43A57E364c57f54f6 is operated by that agent to acquire PAPER TRAIL works in the AI Agents stage. Operator: RUTHVEN AI LIMITED (studio test). Agent: paper-trail-agent-example, RUTHVEN studio test agent 52348. Date: 2026-10-07. I consent to this declaration being recorded publicly with the acquisition.",
          "signature": "0xa7bcbd9559379a75e003b33fcf3a967d5f65482cc6232b3cc7c5a25fd84af8fb798cfed874cc57b9631fee44a8071a755d759a6966122a98cb59298b3c46f8831b"
        },
        "identity": {
          "erc8004": {
            "registry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
            "agentId": "52348"
          },
          "check": {
            "status": "VERIFIED",
            "detail": "the identity's wallet or owner is the minting wallet",
            "registry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
            "agentId": "52348",
            "agentWallet": "0x85cDB1F2eF8b99be21b126F43A57E364c57f54f6",
            "owner": "0x85cDB1F2eF8b99be21b126F43A57E364c57f54f6"
          }
        },
        "permission": {
          "granted": true,
          "status": 200,
          "error": null,
          "signer": "0x08307d5089d07E6e3c31A417B16F56C109a9fC62",
          "salt": "34354686295243291095856838131998113298743488966877873846423993015158347888064"
        },
        "recordedAt": "2026-10-07T10:37:57.473Z"
      },
      "checks": {
        "signatureRecovers": true,
        "identity": {
          "status": "VERIFIED",
          "agentWallet": "0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
          "owner": "0x85cdb1f2ef8b99be21b126f43a57e364c57f54f6",
          "blockNumber": "26140073",
          "blockTimestamp": "2026-10-07T11:01:11.000Z"
        }
      },
      "acquisitions": [
        {
          "txHash": "0xe24a7cf5b0e3222cec5d32b9929f01e22c82e7b78bf86a5c4b5182668dad6532",
          "blockNumber": 26139963,
          "mintedAt": "2026-10-07T10:38:47.000Z",
          "quantity": 1,
          "tokenIds": [
            "22"
          ],
          "joinedBy": "salt"
        }
      ],
      "proof": "https://ruthven.ai/api/ruthven/agent-stage/paper-trail/records/0x6bd1ad8afb0e85a8b91faaab776b23e2edcd87d03068584db25c68ca55d4dd24/proof"
    }
  ],
  "file": "https://ruthven.ai/agent-stage/paper-trail/records.json"
}