← 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).
- 0xeae3eb075d0a20876088e3183c6fd7458e5713d02da02b3948897e4ba6552ffd
- 0x7e647090e3e6bf959f6199fe52b3f9f96b40d0adf78a1f4be22fc7fae5ea03a8
- 0xa1804e2697905a3105108cbfb3c81af88b12e75061e867c61c6661d1a3c87506
- 0xd4b2db3586777a037cfd9e4bfd3228a1e4e9044e5b5a8a33ba0283c7e1258d38
- 0xe9e3f962965d8140d7ff76127edfce221c9c40e932328018a89c1ab99fc71a21
- 0x65352220c494edad7a6c5ac26c82fb1b25f87ad74fba6c0952f6cde85922ee46
- 0x89a149b7f1ce73c7458c70e7f14449e4c8a5c7b7f033fc7913dde1b895ab8487
- 0x3a399149935cc4669bf422566dfffb9dffa59600956bd7907e840a35f2bca4d4
- 0xe8eed1478bc355ee6eb18a1d03dafe59d1db882d2582d7cc6108eb1ab35d4a26
- 0xff16d371a8eaadc371c58dcf9b184d5ab1247c8848ee5dc228c393f057e7e29d
- 0xdcbb0cc500d2b659c111afe9a926b2aafdcc6f6d034768498b0b7295973f9245
- 0x22a204f0cf299dd3152f1542ba9998ff7665390da1ede6e58d06b8a7b2a107ee
- 0xec98ca25cb12ffed7c3e1373971719ce414ee6deecd1e7724b2979e2c356d99f
- 0x614d844c9e0509d9f9e63697aa2935555bce5f13695a8dc0047aa9e9898d70b3
- 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
- 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
- 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae