LedgerKeeper

Label your Sui history for your accountant. Answer each question once.

LedgerKeeper asks about each unclear counterparty one time and keeps the answer in your Walrus Memory. The next import, and your accountant’s app, start from what you already said.

Paste a Sui address: 0x followed by 64 characters.

Try the sample walletThe sample is a public wallet with a fictional owner. About two minutes.

The same questions, again

The sample wallet has 47 transactions. The first import raises five questions. The next import runs into two of the same counterparties again. An answer kept inside one app stays there, so a new tool, or a new year, asks them all over.

A transaction ledger of the sample wallet. Rows the app could not label are marked in yellow.
The sample wallet’s ledger. Yellow marks the rows that need an answer.

How it works

  1. Step 1 of the guided sample: LedgerKeeper labelled 28 of 36 transactions, 5 need you.

    1 Import

    Paste a Sui address. LedgerKeeper reads the history through Tatum and labels what it can: transfers, swaps, liquidity, staking.

  2. A question card asking who a counterparty is, with four answers to choose from.

    2 Answer once

    Each unclear counterparty or contract is one question. Your answer is saved as a rule and is never asked again.

  3. The accountant view with a labelled ledger and a Download CSV button.

    3 Hand over

    Send a labelled CSV, or open the accountant view, which reads your rules with its own key.

Your answers are not stuck in one app

Each answer is a short rule stored in Walrus Memory on mainnet. Any app you give a key can read it. Here is a stored rule, and the accountant view reading it.

What is stored

[tax-rule] match=0x60956e40d8f921affde3cb861de91a6a6a0bab28af7cd1c23e029d46b86a449b kind=exchange v=2

One memory per answer: the counterparty, what it is, and a format version. Change an answer and a newer rule is stored; the newest wins.

Written by LedgerKeeper with one delegate key. Read by the accountant app with a second delegate key. Neither holds your wallet keys.

The accountant app showing the rules it read from the owner's memory and the labelled ledger.
The accountant view: a different app, a different key, the same rules.

What the memory learns

After each import LedgerKeeper stores how it went. The second import of the sample wallet asked three new questions and reused two answers from memory. If you change an answer, the newest one wins.

Memory drawer timeline: the import up to 30 Jun asked 5 and answered 5; the import of 1 Jul to 31 Aug asked 3, answered 3 and reused 2.
Up to 30 Jun: 5 asked, 5 answered. Then Jul–Aug: 3 asked, 3 answered, 2 reused from memory.

Built on

  • TatumSui GraphQL gateway: transaction history, balances and on-chain prices.
  • Walrus MemoryMainnet. Stores the rules and the import outcomes.

Honest limits

  • History starts on 23 Jan 2026, the earliest Tatum serves for Sui, and covers a wallet’s newest 500 transactions.
  • Labels are for your accountant. This is not tax advice.
  • The demo memory is visible to the Walrus Memory relayer.
  • Labelling was hand-checked on small samples from three wallets, not on large ones.
  • USD values are approximate, for SUI legs only, from a Cetus pool price.

Questions

Is this tax advice?

No. LedgerKeeper labels transactions so that your accountant can work from a tidy record. What each label means for your tax, and whether the labels are right for your situation, is a decision for you and your accountant.

Where do my answers live?

In Walrus Memory on mainnet, as short text rules under your account. They are not locked inside LedgerKeeper. In this demo the memory is visible to the Walrus Memory relayer, so do not use a wallet you want kept private.

Can my accountant see them?

Yes. The accountant view is a separate app that reads the same rules with its own key. Today a delegate key in Walrus Memory cannot be limited to reading, so the accountant key could also write; we have reported that to the Walrus Memory team.

What if I answer wrong?

Change the answer from the drawer. The newest answer wins, the next import uses it, and the earlier answer stays in the history of your memory.

Which chains?

Sui mainnet only. History comes through Tatum from 23 Jan 2026, up to the newest 500 transactions of a wallet.

Is it free?

The demo is free to use. It is a hackathon project with no pricing yet.

See it in two minutes

The sample wallet walks you through all three steps.

Try the sample wallet