cryptotaxedge
US tax classification for on-chain transactions: category, treatment, confidence, review flags.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (4)
- HIGH
- MEDIUMen classify_transaction
- MEDIUMen classify_batch
- LOWen lookup_contract
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"cryptotaxedge": {
"url": "https://mcp.cryptotaxedge.com/"
}
}
}Puntos de conexión remotos
https://mcp.cryptotaxedge.com/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
🟢classify_transaction(tx_hash, chain, contract_address, function_selector)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"tx_hash": {
"type": "string",
"description": "Transaction hash (0x-prefixed 66-char for EVM, base-58 for Solana). Either tx_hash OR contract_address is required."
},
"chain": {
"type": "string",
"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."
},
"contract_address": {
"type": "string",
"description": "(Optional) 0x-prefixed contract address the transaction called. With function_selector + chain, performs a rule-library tuple lookup."
},
"function_selector": {
"type": "string",
"description": "(Optional) 0x-prefixed 4-byte function selector (first 4 bytes of tx input data)."
}
},
"required": []
}Esquema de salida
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Canonical category. Open vocabulary that only grows additively; tolerate unfamiliar values and branch exhaustive logic on treatment instead. Full set with house treatments: https://cryptotaxedge.com/standard/#categories"
},
"treatment": {
"type": "string",
"enum": [
"disposal",
"income",
"non_taxable",
"expense",
"needs_review"
],
"description": "Closed five-value tax treatment enum, safe to switch on exhaustively. needs_review means no treatment is asserted."
},
"taxable": {
"type": [
"boolean",
"null"
],
"description": "null when needs_review"
},
"confidence": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"needs_review": {
"type": "boolean"
},
"ledger_action": {
"type": [
"string",
"null"
],
"description": "Suggested ledger label for posting, same field as REST /v1."
},
"protocol": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
],
"description": "Plain-English reasoning for the verdict, same field as REST /v1."
},
"explanation": {
"type": [
"string",
"null"
],
"description": "Deprecated alias of description, kept for existing clients."
},
"assets": {
"type": "object",
"description": "Net asset movements, same shape as REST /v1: sent and received legs plus the gas leg (null when not attributable). Present when the engine response carries them.",
"properties": {
"sent": {
"type": "array"
},
"received": {
"type": "array"
},
"gas": {
"type": [
"object",
"null"
]
}
}
}
},
"required": [
"category",
"treatment",
"confidence",
"needs_review"
]
}🟢lookup_contract(address, chain)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Contract address (0x-prefixed 42-char for EVM)."
},
"chain": {
"type": "string",
"description": "Chain slug (e.g. \"ethereum\", \"polygon\", \"arbitrum\"). EVM only."
}
},
"required": [
"address",
"chain"
]
}Esquema de salida
{
"type": "object",
"properties": {
"protocol": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"category": {
"type": [
"string",
"null"
]
},
"chain": {
"type": [
"string",
"null"
]
}
}
}🟢classify_batch(transactions, engagement_id, firm_id)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"transactions": {
"type": "array",
"description": "Array of transactions to classify (max 100 per call).",
"maxItems": 100,
"items": {
"type": "object",
"properties": {
"tx_id": {
"type": "string",
"description": "(Optional) your own ID for this tx; echoed back so you can correlate results to your records."
},
"tx_hash": {
"type": "string",
"description": "Transaction hash (0x-prefixed 66-char for EVM, base-58 for Solana)."
},
"chain": {
"type": "string",
"description": "Chain slug (e.g. \"ethereum\", \"polygon\", \"bsc\", \"arbitrum\", \"base\", \"optimism\", \"avalanche\", \"solana\"). Optional; CryptoTaxEdge auto-detects the chain if omitted."
}
},
"required": [
"tx_hash"
]
}
},
"engagement_id": {
"type": "string",
"description": "(Optional) host-side engagement identifier. Reserved for firm-policy + engagement-record correlation. No effect today; forward-compatible."
},
"firm_id": {
"type": "string",
"description": "(Optional) host-side firm identifier. When firm classification policy is configured, applies that firm's confidence thresholds + CoA overrides."
}
},
"required": [
"transactions"
]
}Esquema de salida
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Canonical category. Open vocabulary that only grows additively; tolerate unfamiliar values and branch exhaustive logic on treatment instead. Full set with house treatments: https://cryptotaxedge.com/standard/#categories"
},
"treatment": {
"type": "string",
"enum": [
"disposal",
"income",
"non_taxable",
"expense",
"needs_review"
],
"description": "Closed five-value tax treatment enum, safe to switch on exhaustively. needs_review means no treatment is asserted."
},
"taxable": {
"type": [
"boolean",
"null"
],
"description": "null when needs_review"
},
"confidence": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"needs_review": {
"type": "boolean"
},
"ledger_action": {
"type": [
"string",
"null"
],
"description": "Suggested ledger label for posting, same field as REST /v1."
},
"protocol": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
],
"description": "Plain-English reasoning for the verdict, same field as REST /v1."
},
"explanation": {
"type": [
"string",
"null"
],
"description": "Deprecated alias of description, kept for existing clients."
},
"assets": {
"type": "object",
"description": "Net asset movements, same shape as REST /v1: sent and received legs plus the gas leg (null when not attributable). Present when the engine response carries them.",
"properties": {
"sent": {
"type": "array"
},
"received": {
"type": "array"
},
"gas": {
"type": [
"object",
"null"
]
}
}
}
},
"required": [
"category",
"treatment",
"confidence",
"needs_review"
]
}
}
},
"required": [
"results"
]
}🟢map_to_chart_of_accounts(transactions, chart_of_accounts)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"transactions": {
"type": "array",
"maxItems": 100,
"description": "Transactions to classify + map (max 100 per call).",
"items": {
"type": "object",
"properties": {
"tx_id": {
"type": "string",
"description": "Your row id, echoed back."
},
"hash": {
"type": "string",
"description": "On-chain transaction hash (0x…64 hex)."
},
"chain": {
"type": "string",
"description": "Chain slug, e.g. ethereum, polygon, base, arbitrum, optimism, bsc, avalanche."
},
"fiat_amount": {
"type": "number",
"description": "Optional fiat value for the roll-ups."
}
},
"required": [
"hash"
]
}
},
"chart_of_accounts": {
"type": "array",
"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": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
}
}
}
},
"required": [
"transactions"
]
}Esquema de salida
{
"type": "object",
"properties": {
"account": {
"type": [
"string",
"null"
]
},
"mapping_basis": {
"type": [
"string",
"null"
]
}
}
}Comunidad
Evidencia