Nussio Wallet

The key stays.
The signature goes.

Nussio Wallet holds your Antelope accounts in the browser and signs for them without letting a private key reach the page asking. It speaks the same signing request and session protocol as Anchor, so apps built for Anchor connect unchanged.

A signing prompt: sign as greymassfuel@active, an eosio.token transfer of 1.0000 EOS to teamgreymass with the memo coffee, and a two-minute countdown.
Every request stops here first, action by action, before anything is signed.
  • EOS
  • WAX
  • Telos
  • Proton
  • Libre
  • FIO
  • UX Network
  • Jungle 4 and every testnet
  • Any chain you add by hand

A whole wallet, not a signing popup

Everything the Anchor desktop workflow covers, rebuilt for Manifest V3 and a 360 px popup. The screens you only miss once they are gone are here too.

Keys you hold

Generate or import into an encrypted keyring on this machine, or watch any account read-only with no key at all.

Signing requests

esr: links, in-page requests and sealed session messages queue up in one place. Apps written for Anchor need no changes.

Resources

CPU, NET and RAM on one meter everywhere, with staking, renting and a warning before a transaction runs out of room.

Governance

Vote for block producers directly, or hand your vote to a proxy.

History

Read recent actions for the selected account from the chain's Hyperion index.

Backup and restore

Encrypted export in the Nussio format or one Anchor Desktop can read, and restore of either, including Anchor's older per-wallet keyring.

Key tools

Every stored key with the wallets using it, a password-gated reveal with QR, a K1 generator, and a converter between WIF, PVT and both public key formats.

Contacts and tokens

Saved accounts that fill the send form with a default memo, and tokens tracked by contract or scanned from a Hyperion token index.

New accounts

Two keypairs, a mandatory owner-key export, and a shareable request for whoever pays for the account. Premium names can be bid on from the same screen.

Contract and node tools

Push any contract action, read its tables, ping endpoints for latency and head block, and clear the ABI cache when a contract changes.

Captured from the running extension

Live against Jungle 4, the EOS testnet, watching a real account. No renders, no mockups.

Overview screen: available balance of 9,046.7391 EOS, total and staked, CPU, NET and RAM meters, a warning that owner and active share a key, and the account table.
Overview Balance, resources and every account on the selected chain. The wallet flags an account whose owner and active permissions share one key.
Resources screen with CPU, NET and RAM cards showing available, used and allowed amounts, stake split between you and others, and stake, unstake, buy and sell actions.
Resources Stake and unstake CPU and NET, buy and sell RAM at the current price, and see what others staked to you.
Tools screen listing backup and restore, manage keys, permissions, create account, contacts, custom tokens, history, smart contracts and the ABI cache.
Tools Backups, keys, permissions, contacts, tokens and contract calls, gathered on one screen instead of buried in settings.
The same overview at 380 pixels wide, with the chain and account switchers stacked and a bottom tab bar.
Popup width Every screen is built at 360 px first, so the toolbar popup is the whole wallet. The side panel keeps it open beside an app; a full tab adds tables.

Two sides of one boundary

Signing happens inside the service worker. A page asks for a signature and receives one. The key it was made with never makes the trip.

Never leaves this machine

  • Private keys, sealed with AES-256-GCM under a key derived from your password by PBKDF2-SHA256 over 600,000 rounds.
  • Unlocked keys, held in session storage and dropped on lock, on the idle timeout and every time the browser closes.
  • Wallets, contacts, tracked tokens and settings, in extension storage.

Leaves only when you approve

  • A signed transaction, once you have read the actions and accepted them.
  • Chain reads, sent to the API nodes you configured and can change.
  • Sealed session replies, for apps you have logged into with a signing request.

Guarded message channel

Every proxied service call is checked for sender id, extension origin, service key and call path before it runs, which closes the extension RPC hole behind CVE-2023-40580.

Bounded request parsing

Signing requests above 16 KB are refused, and a compressed payload that inflates past 500 KB is dropped, so no zip bomb reaches the worker.

Permission changes blocked

updateauth, linkauth and deleteauth against owner or active are rejected unless you turn them on yourself.

Checked on every change

Each message and stored item carries a zod schema, CI runs typecheck, lint, unit and end-to-end tests on every pull request, and the threat model is written down rather than implied.

Nussio Wallet is pre-1.0 and you are the only custodian. Export a backup before you rely on it, and keep the owner key somewhere offline.

Two minutes, loaded by hand

There is no store listing yet. GitHub Actions packages each release after the same typecheck, lint, unit and end-to-end run the repository uses.

Download for Chrome Manifest V3 build
  1. Unzip it somewhere you can keep. Chrome loads it from that folder every time.
  2. Open chrome://extensions, turn on Developer mode, then Load unpacked and pick the folder.
  3. Open the wallet from the toolbar icon, set a password, enable a chain, then import or watch an account.
Download for Firefox Manifest V2 build, unsigned
  1. Unzip it.
  2. Open about:debugging#/runtime/this-firefox, choose Load Temporary Add-on and pick manifest.json in the folder.
  3. Open the wallet from the toolbar icon, set a password, enable a chain, then import or watch an account.

Mozilla has not signed this build, so Firefox treats it as temporary and forgets it on restart. To keep it, use Developer Edition or Nightly with xpinstall.signatures.required set to false, or sign a build yourself.

# or build it yourself
git clone https://github.com/lshaf/nussio-wallet.git
cd nussio-wallet
pnpm install
pnpm build          # dist/chrome-mv3
pnpm build:firefox  # dist/firefox-mv2

Older tagged builds stay on the releases page.