cryptotaxedge
US tax classification for on-chain transactions: category, treatment, confidence, review flags.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- HIGH
- MEDIUMclassify_transaction에서
- MEDIUMclassify_batch에서
- LOWlookup_contract에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"cryptotaxedge": {
"url": "https://mcp.cryptotaxedge.com/"
}
}
}원격 엔드포인트
https://mcp.cryptotaxedge.com/streamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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": []
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"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.
입력 스키마
{
"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"
]
}출력 스키마
{
"type": "object",
"properties": {
"account": {
"type": [
"string",
"null"
]
},
"mapping_basis": {
"type": [
"string",
"null"
]
}
}
}커뮤니티
증거