Ondology Labs · AI Auditor
| Source | Kind | Chain / Format | Address | Entries | Coverage |
|---|---|---|---|---|---|
| Treasury wallet | wallet | ethereum | 0x1111111111111111111111111111111111111111 | 33 | Complete (33 txs) |
| Operations wallet | wallet | ethereum | 0x2222222222222222222222222222222222222222 | 69 | Complete (69 txs) |
| Cold storage | wallet | bitcoin | bc1qsamplecoldstorage0000000000000000000000 | 2 | Complete (2 txs) |
| Exchange main account | exchange | generic | 20 | Complete (20 txs) | |
| General ledger extract | ledger | generic | 71 | Complete (71 txs) |
On-chain history was retrieved through Ondology's chain data layer and normalised into per-movement entries. Exchange statements and the client ledger were imported and normalised to the same shape. Matching ran deterministically in four passes: previously approved matches, transaction-reference matching (hash, asset, direction), tolerance matching (asset, direction, amount within 0.50%, timestamps within 24 hours), and internal transfer pairing across owned sources. Residual items became the break report below. AI-assisted match proposals, where used, were individually reviewed and appear in the match log as approved matches. Valuation convention: entries dated D are valued at the 00:00 UTC price on D from the primary source, cross-checked against a second source; same-day entries use the live price; stable-value assets are pegged at 1 USD. Every quote used is retained as a price snapshot, and cross-source disagreements above 2% appear in the break report.
| Asset | Activity in | Activity out | Net activity | Books in | Books out |
|---|---|---|---|---|---|
| BTC | 2 | 4 | -2 | 0 | 2 |
| ETH | 85.58 | 160 | -74.42 | 5.58 | 100 |
| USDC | 1,502,500 | 935,800 | 566,700 | 848,500 | 302,600 |
Balances at the period dates, derived from every recorded movement: opening is the sum of all movements before 2025-01-01, closing is opening plus inflows less outflows and fees. In the first table, inflows and outflows are movements with third parties: transfers the engine paired between the client's own accounts are left out. Fees are charged to the asset they were paid in. Closing balances are valued at 2026-01-01 00:00 UTC.
| Asset | Opening | Inflows | Outflows | Fees | Closing | Closing value | Net movement per ledger | Difference |
|---|---|---|---|---|---|---|---|---|
| BTC | 12 | 0 | 2 | 0.0002 | 9.9998 | $899,982 | -2 | -0.0002 |
| ETH | 249.9955 | 25.58 | 100 | 0.0506 | 175.5249 | $526,575 | -94.42 | 19.9494 |
| USDC incomplete | 500,000 | 862,500 | 295,800 | 655 | 1,066,045 | $1,066,045 | 545,900 | 20,145 |
| Total closing value of valued assets | $2,492,602 | |||||||
Difference is the net movement shown by wallets and exchanges less the net movement in the ledger. A non-zero figure is explained by the open items in the break report.
Every movement on each account, transfers between own accounts included.
| Source | Asset | Opening | Inflows | Outflows | Fees | Closing | Basis |
|---|---|---|---|---|---|---|---|
| Treasury wallet | ETH | 244.9955 | 5.58 | 80 | 0.0212 | 170.5543 | Full history |
| Treasury wallet | USDC | 400,000 | 0 | 360,000 | 0 | 40,000 | Full history |
| Operations wallet | ETH | 5 | 0 | 0 | 0.0294 | 4.9706 | Full history |
| Operations wallet | USDC | 100,000 | 1,082,500 | 295,800 | 0 | 886,700 | Full history |
| Cold storage | BTC | 12 | 0 | 2 | 0.0002 | 9.9998 | Full history |
| Exchange main account | BTC | 0 | 2 | 2 | 0 | 0 | Statement window |
| Exchange main account | ETH | 0 | 80 | 80 | 0 | 0 | Statement window |
| Exchange main account | USDC | 0 | 420,000 | 280,000 | 655 | 139,345 | Statement window At least 80,005 USDC of earlier history is missing |
| Severity | Type | Finding | Amount | Value | Status |
|---|---|---|---|---|---|
| high | unrecorded activity | Unrecorded inflow: 14000 USDC This activity movement (tx 0x53b79c82a4d61e…) with counterparty Customer B has no corresponding ledger entry. Every movement must be recorded or explained. |
14,000 USDC | $14,000 | open |
| high | unrecorded activity | Internal transfer recorded one-sided: 20 ETH from Treasury wallet to Exchange main account Both legs of this movement share one transaction and both accounts belong to the client, so it is a transfer between own accounts. The ledger records only the outflow, which reads as a disposal or payment. Confirm the ledger entry is booked as a transfer, with no gain or loss and no change in cost basis. |
20 ETH | $60,000 | open |
| high | balance mismatch | Negative balance on Exchange main account: USDC falls to -80005 on 2025-01-08 Adding up every recorded movement, more USDC left Exchange main account than had arrived by 2025-01-08. At least 80005 USDC of history is missing: the statement starts after the account was funded, or deposits and trade proceeds are absent from it. Opening and closing balances for this asset are understated until the earlier history is added. |
80,005 USDC | $80,005 | open |
| medium | unsupported book entry | Unsupported ledger entry: out 7250 USDC No on-chain transaction or exchange record was found supporting this ledger entry dated 2025-09-22. Ledger memo: "Supplier invoice (hosting)". |
7,250 USDC | $7,250 | open |
| medium | balance mismatch | Balance mismatch on Treasury wallet: computed vs live differs by -1.50000000 ETH Summing all fetched flows gives 170.55430000 ETH, but the live balance is 172.05430000 ETH. Possible causes: transfers missing from the fetched window, fee attribution differences, or activity via mechanisms the data source does not index. |
1.5 ETH | $4,500 | open |
| low | amount mismatch | Amount mismatch on USDC (d6140f3ea98f…) Ledger records 9050 USDC but the matched activity entry shows 9500 USDC for the same transaction reference. Difference: -450. |
450 USDC | $450 | open |
| low | unrecorded activity | Unrecorded network fees: 2 entries totalling 0.0018 ETH 2 fee/self entries have no ledger counterpart. Gas is a real cost that must be recognised somewhere (capitalised, expensed, or treated as disposal cost) according to the engagement's treatment decision. |
0.0018 ETH | $5 | open |
No treatment decisions recorded yet. Document the position taken on gas, rewards, airdrops, internal transfers, and DeFi positions before finalising.
| Match type | Count |
|---|---|
| books/reference | 48 |
| books/window | 22 |
| internal/reference | 21 |
| Total accepted matches | 91 |