{"uid":"cap_lqshjG2McWYw3RhA75bKw","slug":"evm-canon-base-holding-period-splitter-e4c85a62","name":"EVM Canon Base – Holding Period Splitter","description":"Each disposal split into short- and long-term portions by how long the consumed lots were held","url":"https://evm-canon-base.onrender.com/lots/holding-period","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":{"method":{"enum":["FIFO","LIFO","HIFO"],"type":"string"},"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"}}}},"long_term_days":{"type":"integer","default":365}}},"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.04","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.04/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.04","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.04","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_8h2Jd9Ap7GNiSdmBSO2U9","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.04","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Splits each asset disposal into short-term and long-term capital gain/loss portions based on how long the consumed tax lots were held","exampleAgentPrompt":"Take these token disposal records — each with lot acquisition dates and disposal date — and split every disposal into its short-term and long-term portions so I can fill out my Schedule D correctly.","exampleUseCases":[{"title":"Crypto tax report preparation","prompt":"I have a list of ETH and USDC disposals from last year with lot-level detail — can you split each one into short-term and long-term portions so I know what to report on Schedule D?"},{"title":"Real-time gain/loss dashboard","prompt":"For each trade my portfolio manager executes, I want to immediately see whether the realized gain is short-term or long-term — can you classify the holding period for each disposal as trades come in?"},{"title":"Tax-loss harvesting strategy check","prompt":"I'm thinking of selling some positions — given my acquisition dates and current disposal prices, can you split the potential gains by holding period so I know which lots would generate short-term vs long-term gains?"}],"resultDescription":"Returns each disposal split into discrete short-term and long-term sub-records, showing the realized gain or loss amount allocated to each portion, the holding period duration for each consumed lot, and the classification (short-term: held ≤1 year, long-term: held >1 year).","failureModes":["Missing or malformed acquisition/disposal dates preventing holding period calculation","Lots with zero or negative quantities causing division errors","Disposal amount exceeding available lot inventory resulting in an error","Unrecognized token identifiers or mismatched lot references","Malformed JSON body returning a 400 Bad Request","Service unavailable on free-tier Render cold start returning 503"],"whenToPreferThis":"Choose this endpoint when you need holding-period-aware tax lot splitting as a dedicated computation step, especially after running FIFO, HIFO, or average-cost matching on the same platform. Prefer it over general-purpose accounting APIs when you need EVM-native lot structures and exact short/long-term gain attribution per disposal rather than aggregate summaries.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:46:04.663Z","isFirstParty":false}