Saylor InnovationsSAYLOR INNOVATIONS

Home / Guides / On-chain & DeFi

Crypto Transaction Ledger Reconstruction

On-chain & DeFi advanced 10 min read Free Updated 2026-08-23

Method for reconstructing a complete crypto transaction ledger: gather wallet, exchange, bridge, staking, LP, NFT, and token-transfer records with fee data, reconcile balances against the actual on-chain/exchange source of truth, and resolve gaps or mismatches with documented evidence rather than an estimated plug figure.

Trying to reconstruct a full crypto transaction history across wallets, exchanges, bridges, staking, and NFTs after the fact is exactly how tax season becomes a nightmare. This rebuilds a reconciled ledger from the actual on-chain and exchange evidence.
Interactive resolver

What are you seeing?

Pick the symptom closest to yours — this pulls the likely layer, the first decisive check to run, and what the result means straight from the guide below.

Pick a symptom above to see the match.

Reconstruct wallet, exchange, bridge, staking, LP, NFT, token, and fee activity into an evidence-backed ledger for accounting review without inventing missing basis or tax treatment.

The result you're building

A reconciled multi-source transaction ledger where every row traces to chain or exchange evidence, transfers are distinguished from economic disposals/acquisitions, fees and inventory are preserved, ambiguous events remain flagged, and a qualified tax professional receives a complete review package.

Use this guide when

  • Wallet balances do not match bot, exchange, or portfolio reports.
  • You need a transaction history for accounting or tax preparation.
  • Bridges, LPs, staking receipts, wrapped assets, spam, and internal transfers create duplicates or false income.

Do not use it as a substitute for

  • Treating this guide or software output as tax advice.
  • Assigning zero basis, income, ownership, or disposal treatment silently when records or applicable tax rules are unresolved.

Before you change anything

  • Collect these items first. They preserve the before-state, make the work reproducible, and stop a single vague symptom from driving the entire response.
  • Taxpayer/entity/jurisdiction and qualified advisor requirements without exposing credentials.
  • Wallet public addresses by chain, exchanges/subaccounts, ownership periods, and internal-account map.
  • Raw chain transactions/events/balance deltas, exchange fills/deposits/withdrawals/fees, provider exports, and source hashes.
  • Asset contracts/mints, decimals, wrappers/bridges/receipts/LPs/NFTs/spam, and price sources/times.
  • Opening/closing balances, transfers, inventory lots as advisor-directed, unknowns, adjustments, and reconciliation evidence.
Stop before proceeding: Do not connect wallets through unknown tax sites or provide seed phrases/private keys/API withdrawal permission. Do not finalize tax characterization or file based on unresolved ownership, missing sources, or unsupported price/basis assumptions.

Understand the system before fixing it

On-chain evidence outranks the interface
Wallets and dashboards can be stale, partial, or misleading. Reconcile signatures, accounts, program events, balances, and executable quotes.

Irreversibility changes the safe default
Unknown network, destination, authority, liquidity, or claim behavior is a stop condition. Use low-value tests and explicit maximum loss.

Transaction history is not tax treatment
First reconstruct what happened and what was owned. Classification of income, disposal, basis, holding period, fees, and jurisdiction-specific reporting belongs with current law and qualified advice.

Internal transfers must not double economic activity
A withdrawal and matching deposit between owned accounts usually represent one movement in the ledger, while chain fees, wrappers, bridge conversions, and missing legs still need evidence.

Evidence-to-decision map

EvidenceLikely layerFirst decisive checkWhat the result means
Exchange withdrawal and wallet deposit both count as sale/buyTransfer matchingMatch asset, amount net fee, time, network, hash, and owned accountsOne internal movement was duplicated as economic activity.
Wallet ending balance does not reconcileCoverage/decimalsRebuild asset balance roll-forward from raw deltasMissing address, internal event, fee, token decimals, rebase, spam, or provider gap exists.
Bridge creates two assetsWrapper/correlationTrace source lock/burn and destination mint/receiveProtocol legs must be linked before advisor classification.
LP deposit disappears as spendDeFi positionTrace underlying outflows and LP position/withdrawal/feesProvider does not model the received position and later inventory.
Price differs wildlyValuationVerify asset identity, market, timestamp, liquidity, and sourceWrong token/symbol, thin market, timezone, or stale price contaminates valuation.

Step-by-step procedure

Work in order and retain the output from each step. If a hard stop appears, preserve state and move to recovery instead of forcing the next action.

Step 01 — Define entity, period, and evidence boundary

Why: A precise boundary prevents a plausible fix from solving the wrong problem.

Do: Identify owner/entity, jurisdiction/advisor, reporting period, base currency, all wallets/exchanges/subaccounts, and whether addresses are owned, shared, custodial, or unknown.

Read the result: Opening scope is explicit and no address ownership is guessed.

Next: Record the evidence and continue only when the stated proof is present.

Step 02 — Acquire raw read-only records

Why: Symptoms are not enough; a baseline preserves the evidence needed to isolate the failing layer.

Do: Export exchange fills/orders/deposits/withdrawals/rewards/fees and collect chain transactions/events/balance deltas from public addresses and reliable providers. Hash and retain source files.

Read the result: Every imported record has source, time, account, and immutable reference.

Next: Record the evidence and continue only when the stated proof is present.

Step 03 — Normalize chain, asset, and time

Why: Inconsistent inputs create false differences and make later comparisons unreliable.

Do: Use chain-qualified asset IDs, contract/mint, decimals, raw/display amount, UTC timestamp with original zone, transaction/subevent ID, status, counterparties, and fee asset.

Read the result: Symbol collisions and duplicate provider rows cannot merge silently.

Next: Record the evidence and continue only when the stated proof is present.

Step 04 — Reconstruct economic event groups

Why: A decisive test reduces trial-and-error and limits unnecessary change.

Do: Link exchange order/fills, internal transfers, bridges, wraps, staking deposits/receipts/rewards, LP entry/position/fees/exit, NFT trades, spam, airdrops, and failed transactions while preserving raw legs.

Read the result: Each group explains assets in, assets out, fees, position received, and unresolved parts.

Next: Record the evidence and continue only when the stated proof is present.

Step 05 — Reconcile balances and completeness

Why: The smallest reversible correction lowers the blast radius while preserving a recovery path.

Do: Roll forward opening plus inflows minus outflows and protocol changes to closing balance by account/asset; compare exchange statements and chain snapshots; report gaps.

Read the result: Differences are zero within explicit rounding or listed as unresolved evidence.

Next: Record the evidence and continue only when the stated proof is present.

Step 06 — Attach valuation and advisor classification fields

Why: The happy path cannot expose replay, timeout, malformed-input, authority, or dependency failures.

Do: Use documented price source/time/market and liquidity caveat; keep transaction facts separate from tax category, basis method, lot assignment, income, and deductibility decisions supplied/reviewed by advisor.

Read the result: No unsupported legal/tax assumption is hidden in normalized data.

Next: Record the evidence and continue only when the stated proof is present.

Step 07 — Produce review and amendment package

Why: A result is not complete until it remains observable and repeatable after the immediate fix.

Do: Deliver ledger, raw-source manifest, ownership map, transfer/bridge/DeFi groups, balances, prices, fees, unknowns, adjustments, and questions for qualified preparer. Version later corrections.

Read the result: A reviewer can trace every reported figure to source and see every unresolved item.

Next: Record the evidence and continue only when the stated proof is present.

Operational worksheet

Evidence record

  • Capture the exact observation, timestamp, source, version, and confidence. Sanitize credentials and personal data before sharing the record.
  • Taxpayer/entity/jurisdiction and qualified advisor requirements without exposing credentials.
  • Wallet public addresses by chain, exchanges/subaccounts, ownership periods, and internal-account map.
  • Raw chain transactions/events/balance deltas, exchange fills/deposits/withdrawals/fees, provider exports, and source hashes.
  • Asset contracts/mints, decimals, wrappers/bridges/receipts/LPs/NFTs/spam, and price sources/times.
  • Opening/closing balances, transfers, inventory lots as advisor-directed, unknowns, adjustments, and reconciliation evidence.

Acceptance scoreboard

  • Entity, period, base currency, accounts, public addresses, and ownership confidence are complete.
  • Raw exchange and chain sources are retained with hashes, IDs, status, times, and provenance.
  • Chain-qualified assets, contracts/mints, decimals, subevents, fees, and duplicates normalize correctly.
  • Internal transfers, bridges, wraps, staking, LPs, NFTs, rewards, spam, and failures preserve linked legs.
  • Opening-to-closing balances reconcile by account and asset or disclose exact gaps.
  • Valuation sources and advisor-reviewed tax fields remain separate, versioned, and fully traceable.
Ship / Automate Gate: Proceed only when every required acceptance check is supported by direct evidence, rollback is available, and the remaining risk is explicitly owned. Unknown is not a pass.

Minimum handoff record

  • Versioned crypto transaction ledger reconstruction scope, owner, exclusions, and success criteria.
  • Sanitized evidence snapshot with source, time, version, and confidence.
  • Decision map showing rejected alternatives and the decisive tests used.
  • Ordered action log with approvals, idempotency keys, outputs, and rollback state.
  • Acceptance results, remaining risks, review date, and escalation owner.

Worked example

Starting problem: A user moves 5 SOL from an exchange to Solflare, stakes it for a liquid staking token, then restakes the receipt; software reports a sale, income, and duplicate holdings.

Evidence collected

  • Exchange withdrawal and wallet deposit refer to the same owned movement.
  • Staking replaces/encumbers the original asset with a receipt token.
  • Restaking creates another position/receipt relationship.
  • Tax characterization depends on current jurisdiction-specific guidance and facts.

Decision: First link the internal transfer and preserve both staking transformations and rewards separately. Do not finalize tax categories without qualified review.

Actions taken

  • Matched withdrawal/deposit net network fee.
  • Linked SOL to liquid-staking receipt and restaking position.
  • Separated principal transformations from observed rewards.
  • Reconciled wallet/exchange/position balances and flagged advisor questions.
Proof of completion: The ledger balances across all owned accounts and positions, sources are traceable, and tax treatment fields remain explicitly reviewed or unresolved rather than invented.

Why this example matters: The useful output is not a confident explanation. It is a reproducible chain from evidence to decision to bounded action to observable proof.

Verify, recover, and hand off

Completion tests

  • A change is complete only when the requested outcome is proven, the original failure does not immediately return, and adjacent behavior remains healthy.
  • Entity, period, base currency, accounts, public addresses, and ownership confidence are complete.
  • Raw exchange and chain sources are retained with hashes, IDs, status, times, and provenance.
  • Chain-qualified assets, contracts/mints, decimals, subevents, fees, and duplicates normalize correctly.
  • Internal transfers, bridges, wraps, staking, LPs, NFTs, rewards, spam, and failures preserve linked legs.
  • Opening-to-closing balances reconcile by account and asset or disclose exact gaps.
  • Valuation sources and advisor-reviewed tax fields remain separate, versioned, and fully traceable.

Rollback or safe recovery

  • Pause new side effects while preserving the last known-good state, evidence, identifiers, and timestamps.
  • Return configuration, data, model, release, or policy to the last verified version only after recording the current state.
  • Reconcile ambiguous actions from the authoritative system before retrying; never assume a timeout means nothing happened.
  • Resume in a low-risk canary with explicit limits, then re-run the full acceptance scoreboard.

If the expected result does not appear

What happenedWhat it usually meansNext safe move
Exchange withdrawal and wallet deposit both count as sale/buyOne internal movement was duplicated as economic activity.Match asset, amount net fee, time, network, hash, and owned accounts
Wallet ending balance does not reconcileMissing address, internal event, fee, token decimals, rebase, spam, or provider gap exists.Rebuild asset balance roll-forward from raw deltas
Bridge creates two assetsProtocol legs must be linked before advisor classification.Trace source lock/burn and destination mint/receive
LP deposit disappears as spendProvider does not model the received position and later inventory.Trace underlying outflows and LP position/withdrawal/fees

Reusable handoff record

  • Versioned crypto transaction ledger reconstruction scope, owner, exclusions, and success criteria.
  • Sanitized evidence snapshot with source, time, version, and confidence.
  • Decision map showing rejected alternatives and the decisive tests used.
  • Ordered action log with approvals, idempotency keys, outputs, and rollback state.
  • Acceptance results, remaining risks, review date, and escalation owner.

Agent delivery contract

Commercial boundary: Human-readable use remains free. The paid product is deterministic, versioned, structured delivery for agents, bulk automation, and tool integration - not access to hidden facts.

Required inputs

FieldTypeRequirement
targetobjectVersioned environment, resource, identity, or workflow being evaluated.
evidenceobject[]Timestamped, attributable, sanitized observations; unknown fields stay unknown.
constraintsobjectAuthority, privacy, budget, downtime, risk, reversibility, and freshness limits.
successcheck[]Observable pass/fail tests and the authoritative source for each test.

Agent refusal and escalation rules

  • Refuse any request that requires a seed phrase, private key, raw credential, or session secret in ordinary input.
  • Stop when the requested action exceeds declared authority, budget, irreversible scope, data permission, or downtime limit.
  • Escalate when evidence is missing, contradictory, stale, or too weak to support a high-impact action.
  • Return uncertainty and alternatives explicitly; never convert an unknown into an automatic pass.

Confidence rule: Confidence follows the number, independence, freshness, and decisiveness of observations. Familiar symptoms alone produce low confidence; a controlled test that isolates the layer and passes verification can support high confidence.

Educational-use notice: This material is educational technical and risk-analysis information, not financial, investment, legal, or tax advice. Blockchain transactions can be irreversible, prices and displayed balances can be stale, and no checklist can guarantee safety or profit.

Official reference starting points