addrbookFor publishers
← The evidence ledger

Evidence row 291725

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 871f6910-4a1f-4ecc-8349-849a448b2e43
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
6a59e361896590538d0e19156889848fdfed61f07017808925941319edf431fb
Leaf
0xeae3f30301fb0aa905ad7975876a556599c2fb1ad1a633ca48e03834cd32d9fb

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Classify a batch of blockchain transactions (up to 100) using CryptoTaxEdge's classification engine. Built for accounting platforms integrating CryptoTaxEdge as their classification layer. Returns per-transaction: category (the open vocabulary the engine emits, for example swap, transfer, staking, reward, airdrop, income_receipt, fee_payment, borrow, repay, collateral_supply, collateral_withdraw, liquidity_add, liquidity_remove, wrap, unwrap, liquid_staking_mint, bridge_transfer, nft_mint, spam, unclassified; the full set with house treatments is at https://cryptotaxedge.com/standard/#categories and grows additively, so branch exhaustive logic on treatment, never on category), treatment (closed enum: disposal, income, non_taxable, expense, needs_review; needs_review means no treatment is asserted), tax_category (the engine's stored treatment value, kept for existing hosts), taxable, confidence score, needs_review, ledger_action, protocol, description (plain-English reasoning, also returned as explanation for existing clients), assets (sent, received, gas) and a reliability envelope with an explicit route-to-review flag. Complex multi-step transactions (flash loans, batch NFT sales, bridges, DCA programs) additionally return a per-leg breakdown and a preparer-ready memo with IRS citations. EVM + Solana. Pass engagement_id / firm_id to apply firm-specific classification policy when configured.",
      "inputSchema": {
        "properties": {
          "engagement_id": {
            "description": "(Optional) host-side engagement identifier. Reserved for firm-policy + engagement-record correlation. No effect today; forward-compatible.",
            "type": "string"
          },
          "firm_id": {
            "description": "(Optional) host-side firm identifier. When firm classification policy is configured, applies that firm's confidence thresholds + CoA overrides.",
            "type": "string"
          },
          "transactions": {
            "description": "Array of transactions to classify (max 100 per call).",
            "items": {
              "properties": {
                "chain": {
                  "description": "Chain slug (e.g. \"ethereum\", \"polygon\", \"bsc\", \"arbitrum\", \"base\", \"optimism\", \"avalanche\", \"solana\"). Optional; CryptoTaxEdge auto-detects the chain if omitted.",
                  "type": "string"
                },
                "tx_hash": {
                  "description": "Transaction hash (0x-prefixed 66-char for EVM, base-58 for Solana).",
                  "type": "string"
                },
                "tx_id": {
                  "description": "(Optional) your own ID for this tx; echoed back so you can correlate results to your records.",
                  "type": "string"
                }
              },
              "required": [
                "tx_hash"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "transactions"
        ],
        "type": "object"
      },
      "name": "classify_batch"
    },
    {
      "description": "Classify a single blockchain transaction using CryptoTaxEdge's multi-source consensus engine, the same engine and serve semantics as the public REST /v1/classify endpoint. Returns the /v1 contract fields: category (the open vocabulary the engine emits, for example swap, transfer, staking, reward, airdrop, income_receipt, fee_payment, borrow, repay, collateral_supply, collateral_withdraw, liquidity_add, liquidity_remove, wrap, unwrap, liquid_staking_mint, bridge_transfer, nft_mint, spam, unclassified; the full set with house treatments is at https://cryptotaxedge.com/standard/#categories and grows additively, so branch exhaustive logic on treatment, never on category), treatment (closed enum: disposal, income, non_taxable, expense, needs_review; needs_review means no treatment is asserted and taxable is null), taxable, confidence, needs_review, ledger_action, protocol, description (plain-English reasoning, also returned as explanation for existing clients) and, on hash lookups, assets (sent, received, gas). Works for EVM chains and Solana. Provide tx_hash (chain optional, auto-detected), or contract_address + function_selector + chain for a rule-library tuple lookup.",
      "inputSchema": {
        "properties": {
          "chain": {
            "description": "Chain slug (e.g. \"ethereum\", \"polygon\", \"bsc\", \"arbitrum\", \"base\", \"optimism\", \"avalanche\", \"solana\"). Optional for tx_hash lookups; the engine auto-detects the chain. REQUIRED for contract_address lookups.",
            "type": "string"
          },
          "contract_address": {
            "description": "(Optional) 0x-prefixed contract address the transaction called. With function_selector + chain, performs a rule-library tuple lookup.",
            "type": "string"
          },
          "function_selector": {
            "description": "(Optional) 0x-prefixed 4-byte function selector (first 4 bytes of tx input data).",
            "type": "string"
          },
          "tx_hash": {
            "description": "Transaction hash (0x-prefixed 66-char for EVM, base-58 for Solana). Either tx_hash OR contract_address is required.",
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "classify_transaction"
    },
    {
      "description": "Look up a smart contract in CryptoTaxEdge's registry. Returns protocol metadata, contract type, verified ABI availability, label, and category hints. Use before deciding whether to classify a tx.",
      "inputSchema": {
        "properties": {
          "address": {
            "description": "Contract address (0x-prefixed 42-char for EVM).",
            "type": "string"
          },
          "chain": {
            "description": "Chain slug (e.g. \"ethereum\", \"polygon\", \"arbitrum\"). EVM only.",
            "type": "string"
          }
        },
        "required": [
          "address",
          "chain"
        ],
        "type": "object"
      },
      "name": "lookup_contract"
    },
    {
      "description": "Map classified blockchain transactions into journal-entry-ready ledger lines against a chart of accounts. For each transaction (up to 100): debit account, credit account, optional gain/loss plug account, memo (protocol + reasoning), confidence, and a route-to-review flag, plus category roll-ups with the governing US tax authority (IRC §1001, §61, Rev. Rul. 2019-24, Rev. Rul. 2023-14, etc.). Pass your own chart_of_accounts (array of {name, type}) and the tool maps to YOUR account names; omit it for a standard crypto-treasury chart. Suggested, non-binding entries: the ledger platform owns amounts, cost basis, and posting.",
      "inputSchema": {
        "properties": {
          "chart_of_accounts": {
            "description": "Optional: your chart of accounts as [{name, type}]. Account names are pattern-matched per role (digital assets, income, fees, realized G/L, collateral, LP positions, loan payable). Omit for the standard chart.",
            "items": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "transactions": {
            "description": "Transactions to classify + map (max 100 per call).",
            "items": {
              "properties": {
                "chain": {
                  "description": "Chain slug, e.g. ethereum, polygon, base, arbitrum, optimism, bsc, avalanche.",
                  "type": "string"
                },
                "fiat_amount": {
                  "description": "Optional fiat value for the roll-ups.",
                  "type": "number"
                },
                "hash": {
                  "description": "On-chain transaction hash (0x…64 hex).",
                  "type": "string"
                },
                "tx_id": {
                  "description": "Your row id, echoed back.",
                  "type": "string"
                }
              },
              "required": [
                "hash"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "type": "array"
          }
        },
        "required": [
          "transactions"
        ],
        "type": "object"
      },
      "name": "map_to_chart_of_accounts"
    }
  ]
}

What the leaf hashes

{"body":"6a59e361896590538d0e19156889848fdfed61f07017808925941319edf431fb","id":291725,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048278184097,"prev":null,"subject":"871f6910-4a1f-4ecc-8349-849a448b2e43","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xeae3eb075d0a20876088e3183c6fd7458e5713d02da02b3948897e4ba6552ffd
  2. 0x7e647090e3e6bf959f6199fe52b3f9f96b40d0adf78a1f4be22fc7fae5ea03a8
  3. 0xa1804e2697905a3105108cbfb3c81af88b12e75061e867c61c6661d1a3c87506
  4. 0xd4b2db3586777a037cfd9e4bfd3228a1e4e9044e5b5a8a33ba0283c7e1258d38
  5. 0xe9e3f962965d8140d7ff76127edfce221c9c40e932328018a89c1ab99fc71a21
  6. 0x65352220c494edad7a6c5ac26c82fb1b25f87ad74fba6c0952f6cde85922ee46
  7. 0x89a149b7f1ce73c7458c70e7f14449e4c8a5c7b7f033fc7913dde1b895ab8487
  8. 0x3a399149935cc4669bf422566dfffb9dffa59600956bd7907e840a35f2bca4d4
  9. 0xe8eed1478bc355ee6eb18a1d03dafe59d1db882d2582d7cc6108eb1ab35d4a26
  10. 0xff16d371a8eaadc371c58dcf9b184d5ab1247c8848ee5dc228c393f057e7e29d
  11. 0xdcbb0cc500d2b659c111afe9a926b2aafdcc6f6d034768498b0b7295973f9245
  12. 0x22a204f0cf299dd3152f1542ba9998ff7665390da1ede6e58d06b8a7b2a107ee
  13. 0xec98ca25cb12ffed7c3e1373971719ce414ee6deecd1e7724b2979e2c356d99f
  14. 0x614d844c9e0509d9f9e63697aa2935555bce5f13695a8dc0047aa9e9898d70b3
  15. 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON