pecu@
pecu@

// your identity. your money. your wallet.

A Verus wallet that needs no full node.

Self-custodial, one binary, nothing to sync. Your keys are generated and stay on your machine — the chain data comes from a node somebody else already runs.

A laptop showing the Pecu dashboard: a total balance, a breakdown into spendable and maturing, an asset list, a market panel and recent activity.

The difference

Running a node is a commitment. Holding coins should not be.

A full node is the right tool if you want to validate the chain yourself. It is a poor tool if you want to check a balance on a laptop. Pecu is a light client: it asks a node the same questions your wallet would have asked its own, and it does not keep one.

Wallet with a bundled node

  • Tens of gigabytes of chain to download
  • An initial sync measured in hours or days
  • Re-syncs every time you have been away
  • A daemon running beside the wallet
  • Disk and memory a laptop notices

Pecu

  • Open it and it is ready
  • Nothing to sync, nothing to catch up on
  • One binary — no runtime, no daemon, no installer for a language
  • Endpoints for Verus, vARRR, CHIPS and vDEX ship with it
  • Nothing to choose, and nothing to get wrong

If you do run verusd, not everything is wasted: for shielded transactions Pecu looks for the Sapling proving parameters your node already downloaded before it considers fetching its own. It will not read balances from it, though. The endpoints are the ones this build ships, one per chain, and they are not configurable — a node is where a wallet reads balances and hands over signed transactions, and a URL typed into a box is not the shape that decision should take.

Screens

What it looks like

Not mockups. Every image here is a reference screenshot the test suite renders and compares on each run — 150 of them, in both themes. A layout change nobody looked at fails the build.

The send form: a source key, a recipient, an amount, and a panel describing the payment.
SendPay an address or a VerusID by name. The fee and the total on the next step are read back from the transaction that was signed, not estimated here.
The receive screen: an address, a QR code, and the names that point at it.
ReceiveAn address and a QR code — and the names that point at it, if you hold any.
The convert screen: a pay currency, a receive currency and a quote.
ConvertVerus' on-chain conversions, quoted from the reserve state the chain publishes.
The markets screen, listing currencies with prices, changes and reserves.
MarketsPrices and reserves, with the window labelled — a column headed differently would look precise and not be.
The activity screen, listing transactions grouped by day.
ActivityWhat happened, kept locally, with a detail sheet per transaction.

Built in

The careful parts

Most of what matters in a wallet is where it declines to be clever on your behalf.

Keys never leave the machine

Generated locally, encrypted on disk with Argon2id at roughly three and a half times the OWASP interactive minimum. The interface crate cannot even name the type that carries a private key — that is a compile error, not a rule.

You confirm the real transaction

The review screen is decoded from the signed bytes: the outputs, the fee and the change as they actually are, not re-rendered from what you typed into the form.

It never guesses which money you meant

A key can hold transparent and shielded funds. Choosing for you would decide whether a payment is traceable, silently. It asks.

Spending real money is deliberate

Anything that could move value sits behind a typed confirmation — not only the main chain. Only the one chain positively known to be worthless is exempt.

Zero and “we don't know” are different

An unknown price is a dash. A pool nobody has scanned says so. A zero is a number somebody measured. The wallet would rather admit a gap than fill it.

Nothing secret reaches the logs

A test walks the log files on every run and fails the build if a key, a passphrase or a recovery phrase appears in one.

The trade

What you give up, and what is done about it

Not running a node means asking somebody else's. That is a real trade and it deserves a plain answer rather than a footnote.

Your keys
Not part of the trade. They are generated on your machine, encrypted there, and never sent anywhere. A remote node signs nothing.
Your balances
Come from the node. A wrong answer shows you a wrong number — which is why the wallet distinguishes a figure it measured from one it could not.
Your transactions
Built and signed locally, then handed over to be broadcast. The node cannot alter one: the signature commits to every output.
Which chain you are on
The sharp edge, because addresses look identical across Verus chains. A node's word about its own identity is treated as a claim and not a fact: the name it reports has to agree with the chain id it reports, and a node that contradicts itself is not read from or spent through. What that does not reach is a node telling the truth about itself and lying about the coins. Checking that needs a second, independently operated endpoint, and Pecu ships one per chain — so today it is not checked.
Your privacy
The node sees which addresses you ask about, and the endpoints are the ones this build ships — choosing your own is not something Pecu offers, because a node is where balances are read and signed transactions are handed over, and that is not a choice to ask for in a text box.

Status

Under active development, in the open

Built in public, with the reasoning written down as it goes. Here is what runs today and what is being worked on next.

Working today

  • Wallet creation, recovery phrase, encrypted keystore
  • Balances, send, receive and transaction history
  • Paying a VerusID by name
  • On-chain conversions and live market data
  • Several chains, and several keys per chain
  • Shielded balances and spends on testnet

On the way

  • Sending tokens — today they can be received and converted
  • Identity and currency management, already built and being validated
  • Payment and login links, opened straight from a QR code
  • Shielded support beyond testnet

Every decision, including the ones deliberately postponed, is written down in the repository. Releases will land here when they are ready to install.