{"product":"Verilot","updated":"2026-08-15","verifier":{"trust":"reproduction","operator":"one person","taxAdvice":false,"dollarsPublishedWhen":"tie_out_matched","not":["consensus","zero-knowledge","on-chain attestation","validator network"],"reproduce":["Paste the same public addresses and cutoff, or drop the same CSV, on /check.","Read the balance tie-out table. If it does not match, the dollar figures were withheld — that is the gate, not a caveat.","Open every finding's transaction hash on a public explorer for that chain."]},"edgeCases":[{"id":"transfer_broken_basis","kind":"finding","type":"transfer_broken_basis","label":"Self-transfer booked as a sale","whatBreaks":"A move between wallets you own is imported as a disposal on the sending side and a $0-basis deposit on the receiving side.","howEngineFlags":"The same disposal's realized gain differs between a linked run (transfers carry basis) and a naive run (they do not).","actionKind":"mark_transfer","note":"This looks like a move between wallets in the scanned set. In the software, mark the matching row as a transfer (not a disposal).","publicExample":{"slug":"45m-phantom-gains-public-wallet","note":"Same engine, linked vs unlinked, on a public cluster. Not a measured error in someone else's software."}},{"id":"bridge","kind":"finding","type":"bridge","label":"Bridge leg that drops basis","whatBreaks":"One leg is booked as a withdrawal or sale; the other arrives with no purchase price.","howEngineFlags":"A bridge deposit or withdrawal is one-sided or attrited in the scanned set — the matching leg is missing or the amount does not survive.","actionKind":"mark_transfer","note":"This looks like a bridge leg. In the software, mark both legs as transfers so the receiving side keeps its cost.","publicExample":null},{"id":"rebase","kind":"finding","type":"rebase","label":"Elastic-supply adjustment","whatBreaks":"A supply change is imported as income or as a disposal, with no matching purchase.","howEngineFlags":"The decoder flagged an elastic-supply (rebase) adjustment. Treatment is uncertain, so the row is named rather than classified as a transfer.","actionKind":"review","note":"This row could not be classified with certainty. Leave it for the software's review queue.","publicExample":null},{"id":"unpriced","kind":"finding","type":"unpriced","label":"No usable market price","whatBreaks":"The software guesses a price, drops the row, or books proceeds against a made-up cost.","howEngineFlags":"No fair-market value could be resolved for this event, so it is skipped rather than priced from a guess.","actionKind":"review","note":"This row could not be classified with certainty. Leave it for the software's review queue.","publicExample":null},{"id":"missing_basis","kind":"finding","type":"missing_basis","label":"Disposal with no recorded purchase","whatBreaks":"The software books the whole proceeds as gain because the lot has no arrival on file.","howEngineFlags":"A disposal consumed coins that have no recorded acquire in the scanned wallets or uploaded CSV.","actionKind":"add_wallets","note":"The disposal has no recorded purchase. Add the sending wallet or the exchange CSV that bought these coins, then re-run.","publicExample":null},{"id":"unattributed_inflow","kind":"finding","type":"unattributed_inflow","label":"Coins arrived with no purchase on record","whatBreaks":"The software assigns fair-market value as cost, or books $0, for coins that appeared without a matching buy.","howEngineFlags":"An inflow has no consideration on record. It is booked at $0 cost, not at FMV, so a guessed basis cannot walk into the figures.","actionKind":"add_wallets","note":"Coins arrived with no purchase on record. Add the source wallet or the exchange CSV, then re-run.","publicExample":null},{"id":"blank_reported_basis","kind":"file","label":"Blank or missing cost on a 1099-DA / tax-software export","whatBreaks":"A blank Box 1g or a missing purchase-price column is imported as $0, so the whole sale is taxed as gain.","howEngineFlags":"The file parser lists sale rows whose reported basis is blank. Wallets are not required for this preview; they fill the gap on the next run.","actionKind":"add_wallets","note":"This row has no purchase price in the file. Add the wallets that held these coins so the scan can fill the gap.","publicExample":null}],"url":"https://verilot.app/method","json":"https://verilot.app/method.json"}