{"uid":"cap_OaAETh0XOROBtg_VFCnGi","slug":"evm-canon-trade-ledger-validator-aa8b8ee7","name":"EVM Canon Trade Ledger Validator","description":"Every problem in a trade ledger reported at once: unmatched sells, duplicates, bad numbers and timestamps","url":"https://evm-canon-base.onrender.com/lots/validate","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","required":["trades"],"properties":{"trades":{"type":"array","items":{"type":"object","required":["side","asset","amount","price","time"],"properties":{"fee":{"type":"string"},"side":{"enum":["buy","sell"],"type":"string"},"time":{"description":"unix seconds/millis or ISO-8601"},"asset":{"type":"string"},"price":{"type":"string","description":"unit price in the quote currency"},"amount":{"type":"string","description":"decimal string, never a float"}}}}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Gw6IJft1l8uxl-Ez_6M45","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates a trade ledger and reports all problems at once: unmatched sells, duplicate entries, bad numeric values, and invalid timestamps.","exampleAgentPrompt":"Can you validate my trade ledger and flag every issue you find — unmatched sells, duplicate trades, bad numbers, or invalid timestamps — all at once before I run any cost-basis calculations?","exampleUseCases":[{"title":"Pre-tax-season ledger audit","prompt":"I'm about to compute my crypto capital gains for the year. Can you validate my full trade ledger first and list every problem — unmatched sells, duplicates, bad amounts, or broken timestamps — so I can fix them before running the cost-basis report?"},{"title":"Debugging a failed HIFO calculation","prompt":"My HIFO cost-basis run keeps throwing errors. Can you validate the trade lots I'm passing in and tell me every data problem you see, whether it's unmatched disposals, duplicate lots, or bad numeric fields?"},{"title":"Onboarding imported exchange trades","prompt":"I just imported a CSV of trades from my exchange into my ledger system. Before I do anything else, can you run a full validation and report all issues like unmatched sells, duplicates, or malformed timestamps in one shot?"}],"resultDescription":"A structured report listing every detected problem in the trade ledger: unmatched sell events (disposals with no matching acquisition lot), duplicate trade entries, invalid or out-of-range numeric values, and malformed or out-of-sequence timestamps. Each issue is described with enough context to locate and fix it.","failureModes":["Malformed request body returns a 400 with a schema validation error","Empty or missing trades array results in an error or empty report","Payment not attached or insufficient USDC causes a 402 Payment Required response","Extremely large ledgers may time out if the Render.com instance is cold-starting","Partial or truncated data may produce false-positive unmatched-sell errors"],"whenToPreferThis":"Use this endpoint as the first step before any cost-basis or gain/loss calculation. It catches all data quality issues in a single call — unmatched sells, duplicates, bad numbers, and bad timestamps — rather than discovering them one at a time when downstream calculations fail. Prefer it over manual inspection or per-field validators when you need a comprehensive, multi-error audit of an entire ledger in one pass.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:52:37.783Z","isFirstParty":false}