⚠️ Test environment — this is not the official main blockchain. Any coin or token in here has no value whatsoever. You are on TestNet

### Welcome

Open an existing wallet or create a new one. Everything stays in your browser.
Recovery phrase or secret key
Never import a key that has ever been used inside an exchange account.
Wallet format
The same phrase / key makes a different address in each format — ZooBC is the default. Choose Ethereum, Bitcoin or Solana if you're importing from one of those.
Account
#0
new here?
Your phrase / key never leaves this page — it signs transactions locally.
← Back to wallet Node settings

### Set a PIN

Choose a 6-digit PIN. It encrypts your wallet on this device so it survives a page refresh — and unlocks it next time.
6-digit PIN
Confirm PIN
The PIN protects this device only. Your recovery phrase is the real backup — keep it safe and private.

### Welcome back

Enter your PIN to unlock your wallet.
PIN
Node settings Restore from a backup file Reset wallet on this device

### Watch an address

See balance & activity for any address. No key is stored — you can't send.
Address (ZBC_… / 0x… / 1…)

### Back up your recovery phrase

Choose a length and word list, then write the words down in order.
24 words is the standard used for ZooBC genesis accounts.
This recovery phrase is the only way to access these funds. Write the words down in order and store them somewhere safe and private — they can’t be recovered if lost, and anyone who has them controls the wallet.
I’ve written down my recovery phrase somewhere safe.

### Confirm your phrase

Pick the correct word for each position to confirm you wrote it down.
Balance
0
Spendable 0 ZBC
Recipient
Amount
Network fee (ZBC)
The fee grows with the message size. It's filled in automatically from the network; you can raise it.
Message (stored on-chain) Encrypt message
Encryption is available only for ZBC → ZBC transfers.
Private note (only you — saved on this device)
Liquid payment — vests to the recipient gradually over time
Vesting period (minutes)
The recipient can claim the amount proportionally as it vests over this period.
Escrow — hold until an approver approves Pay the network fee in this token — burns fee-tokens & releases an equal slice of ZBC backing
Approver address
Hold until — auto-approve / refund deadline
…or pick an exact date & time
Approver commission (ZBC) Instruction (optional)
Expecting to be paid instead? Request a payment — the receiver-side escrow: you set the amount and approver, the payer funds it.
Create transaction only — produce the signed bytes / QR to broadcast later or hand to someone else (doesn't send)
Amount 0 ZBC
Approver commission 0 ZBC
Network fee 0 ZBC
Total 0 ZBC
Share this address to receive funds — or send a payment request: an escrow in the other direction that the payer just approves.

### Activity

### Contacts

Save people and their addresses across blockchains. Their name shows in place of the address when you send or review activity — the address is always one tap away to copy.
To
Topic (optional — e.g. an app id for moves) Message
Stored on-chain as an account dataset. A network fee applies, like any transaction.

### Datasets — your on-chain entries

Every chat message, poll, invoice, form and profile field is a dataset entry on an account. Read yours here, add new ones, remove ones you created. Rent, access policy & ownership live under the Objects tab.
My entries
Unlock a wallet to list its dataset entries.
Add an entry
Writes a property → value pair on an account (a SetupAccountDataset transaction). Stored on-chain; storage rent applies. Max 4,096 bytes per entry.
On account (blank = your own) Property Value
0 / 4096 bytes
Remove an entry manually
Removal must match the entry exactly — the account it was set on, the property and the value. Entries listed above have a one-tap Remove instead.
Recipient address Property / topic (incl. the #… suffix shown in Chat) Value

### Fund storage (prepay dataset rent)

Top up prepaid storage so your dataset entries live longer before rent expires.
Amount (ZBC) Dataset address (optional)
Per-dataset targeting (one account can hold several datasets) is being added on the node; for now this funds your account's storage. Activates on the next blockchain (new transaction type).
Fund any object by creating-tx hash — longevity deposit
Datasets & stored files pay storage rent from a ZBS_ deposit derived from their creating transaction. Top it up so the object isn't pruned. Funding can itself be escrowed (so a sponsor approves it).
Transaction ID (the tx that created the object)

### Node

Everything for running a validator node — kept separate, since most wallet users won't need it.

#### My nodes

Every node owned by one of your wallets — across all accounts or one you pick. Name them locally to tell them apart, and copy the keys the actions on the other tabs ask for.
Wallet

#### Register a node

Registers a node owned by this wallet. Paste the node's secret key — the wallet builds a proof of ownership from a recent block and signs it. (ZooBC accounts only.)
Node secret key (64-hex) Locked balance (ZBC)
Staked by the node; the minimum is a blockchain parameter, currently 1 ZBC on this blockchain. The stake is refundable in full, always, even if the node is expelled at zero participation score.
Running a registered testnet node by 14 December 2026 (2 months minimum, 3 or more recommended) is a foundation requirement to join the mainnet registry at genesis. Project roadmap

#### Remove a node

Deregister a validator node you own; its locked balance is released.
Node secret key (64-hex)

#### Update node stake

Change the locked stake on a node you own. The new amount can only stay the same or increase. Paste the node's secret key — the wallet builds a fresh proof of ownership.
Node secret key (64-hex) New locked balance (ZBC)

#### Claim a node

Re-assign a node's ownership to this wallet, proving control with the node's secret key.
Node secret key (64-hex)

#### Blockchain economics

What the blockchain charges — storage rent, account rent, gateway stake — is set by the node operators themselves. A vote is signed with your node key; a value takes effect only when 2/3 of all registered nodes have voted for exactly that value. There is no proposer and no admin — a node either agrees with a specific number or it doesn't.
Loading the values in force…
Parameter
Your vote — the value that should be in force
Node secret key (64-hex)
The blockchain doesn't yet publish how many nodes back each value, so no live tally is shown here — your node's vote is recorded on-chain and stands until the parameter changes.

### What I transact with

Refuse whole categories of transactions for this account — recorded on-chain and enforced by every node. Turning a category off removes it in both directions: you won’t send or receive it. Anyone who tries is bounced — no funds move; they pay only the network fee.
Loading current policy…
Saving broadcasts a SetTransactPolicy transaction signed by this account — it costs a normal network fee (~0.05 ZBC) and applies once the block settles.

### Network

Everything registered on this blockchain, read straight from the node: the gateways wallets connect through, the relays that carry calls & presence, and the archival nodes that serve full history. To register your own, use My infrastructure.

#### Gateways

The web front wallets talk to. Tap one to connect this wallet to it.
Loading…

#### Relays

Call signaling and presence. Each relay belongs to a gateway.
Loading…

#### Archival nodes

Full blockchain history behind “All TX” in Activity.
Loading…

### My infrastructure

Everything you run, in one place — register, keep alive and withdraw your gateways, relays and archival nodes. What you already have registered is listed first. To browse the whole network, use Network.
Loading registries…

#### Register a gateway

Registering it on-chain lets wallets discover it. Locks a 10 ZBC stake (refunded when you unregister) plus the fee. The gateway key is the gateway's 32-byte identity public key (can be the node's key). Heartbeats are emitted automatically by the running gateway — there's no button for them here.
ZBG_XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
The ZBG_ address of the key below — it updates live as you type or generate.
Gateway key (64-hex)
Generate one above, or — if the gateway server is already running — copy the key the gateway installer printed at setup (it's in the server's env/config). The gateway's public endpoint never exposes it.
Domain URL

#### Unregister a gateway

Withdraw a gateway you registered; its 10 ZBC stake is refunded.
Gateway key (64-hex)

#### Register / update a relay

Publish a relay for discovery: which gateway it serves, and where to reach it. (The off-chain relay-bind certificate below still authenticates it — this record only makes it findable.)
Relay key (ZBR_… or 64-hex)
Copy it from the relay server — the relay installer prints it at setup (also in the relay's env file), or from Relay key & certificate below if this wallet generated it. It isn't exposed on any public endpoint.
Gateway it serves
Domain URL

#### Relay key & certificate

A relay is the call/presence server your gateway runs. The wallet generates its ZBR_ key and a certificate signed by your gateway's ZBG_ key — no transaction, no fee. Paste the output into the relay server's /etc/zoobc/relay.env and restart it; its log then shows [fed] ON and it links to peer gateways. Re-run any time to rotate the relay key.
Gateway (holds the ZBG_ key that signs the certificate)
Certificate validity (days)

#### Register / update an archival node

An archival node is one of your registered nodes that also serves full history + the explorer API. This record puts the Archival badge on it in the explorer.
Node key (ZNK_… or 64-hex) — must be a registered node you own
Copy it from the node server — the node installer prints it at setup (also in the node's startup log). The node's public API doesn't expose it.
Domain URL (archival API base)

### Governance

Decide together — community polls and network fee votes, all on-chain.

#### Polls

A poll is an on-chain record, like a form: a question with options, a description, a voting window, and eligibility rules. Each vote is a signed transaction from the voter's account; tallies read straight from the blockchain.
Loading…

#### Fee voting

Vote the network fee scale up or down — 1.0× = normal. The median of all node votes moves it, clamped to 0.5×–2.0× per period. Voting is two steps: commit your vote (hidden as a hash), then reveal it in the reveal window. This device remembers your committed vote so you can reveal it.
Proposed fee scale (× normal)

### Keys & seeds

One seed phrase can hold accounts on several blockchains. Name your seeds, then add ZooBC, Ethereum, Bitcoin or Solana accounts from each — no need to re-enter the phrase.

### Imported keys & watched addresses

### Active transactions

Transactions that are live right now and may need an action from you.

#### Act on a transaction by ID

Not listed above? Paste any transaction ID — the wallet detects whether it's an escrow, a liquid payment or a vesting/recurring schedule and opens the matching action.

### Approve or reject an escrow

As the named approver, release the held funds to the recipient or send them back.
Escrow transaction ID

### Stop a liquid payment

Halt a liquid payment you started; the unvested remainder returns to you.
Liquid payment transaction ID

### Stop a vested / recurring schedule

Schedules you created that are still running. Revoking returns the unfired remainder to you; tranches already delivered stay with the recipient.

#### Stop a schedule by ID

Works even when it isn't listed: enter the ID of the transaction that created the schedule. The unfired remainder returns to the sender; tranches already delivered stay put.
Schedule ID

### Multi-sig

An account that needs several people to approve each transaction.
Participants (one address per line — any format: ZBC_…, 0x…, 1…)
Min signatures
Nonce
Registering records the participant set on-chain. "Add to my wallet" lets you select it as an account (marked with a multisig badge) to receive and propose spends.
Spend from a multisig account: this builds the transfer, adds your signature (the wallet selected in the top bar must be a participant), and broadcasts it as a proposal. Co-signers find it under “Sign multisig transaction” and the spend executes automatically the moment enough have signed.
Multisig account
Recipient Amount (ZBC)
A co-signer sent you a multisig transaction to approve? Paste it below and sign with the wallet selected in the top bar; then pass the result to the next signer, or broadcast once enough signatures are collected.
Transaction data (hex, base64 or JSON from a previous signer)
Signing never broadcasts anything by itself — the signed payload is copied so you can send it to the next participant. “Broadcast” opens Submit a signed transaction with it prefilled.

### Tokens

Create a token backed by ZBC, or send one you hold. Backed tokens keep a constant ZBC value (burning redeems your share).
Issue a token
Symbol
Name
Total supply
Decimals (0–8)
Backing (ZBC locked) — 0 for an unbacked token
Redeemable (burn → reclaim backing) Mintable (issuer can add more)
Logo (SVG, optional) — the token's icon
Description (optional)
Send a token
Token
Amount Recipient
Mint or burn
Token
Amount
Mint (issuer only, mintable tokens) adds supply and locks more backing so unit value stays constant. Burn (redeemable tokens) destroys your tokens and returns your share of the backing. For Finance, the amount above is ZBC: it is spent as the transaction fee, which is what buys the token's storage persistence.

### Submit a signed transaction

Broadcast a transaction that was signed elsewhere (e.g. on an offline / air-gapped wallet). Paste its data below, or scan its QR code. No key is needed here.
Signed transaction data

### ⚠️ SOFTWARE INTERFACE NOTICE & USER RISK ACKNOWLEDGMENT

IMPORTANT: Please read this notice carefully before executing this software.

This interface ("the Software") is a locally executed client application designed to be run exclusively from your private hardware. It facilitates user-initiated interaction with various independent, decentralized protocols, distributed networks, and third-party tools (collectively, "the Services"). The Software is distributed as standalone code; it does not host, control, or operate these underlying networks.

By clicking "I Accept" and interacting with this Software, you explicitly acknowledge, warrant, and agree to the following:

- Local Execution Only: You are executing this software locally as a client-side file (`file://` protocol). If you are accessing this interface via a publicly hosted web server or domain, you acknowledge that such hosting is unauthorized, independent of the software developers, and accessed entirely at your own risk.
- Absolute User Responsibility: You retain physical presence within a specific geographic jurisdiction. You assume sole, non-transferable responsibility for ensuring that your use of any component within this software—including value-exchange tools, communication modules, and interactive token-based systems—complies fully with your local, state, national, and international laws.
- Regulatory & Transmission Risks: Certain features within this application facilitate decentralized data transmissions or peer-to-peer communications that may be restricted, monitored, or blocked in your region. Utilizing these tools to bypass local network restrictions is done entirely at your own legal and technical peril.
- Sovereignless Architecture: The underlying protocols exist across a distributed global architecture (which may include terrestrial, maritime, or extraterritorial nodes) with no single centralized jurisdiction or operator. No entity has the power to reverse transactions, recover funds, or shield you from the legal consequences of your actions.

If you do not agree to these terms, or if the execution of this software violates the laws of your physical location, you must close and delete this file immediately.

The full Terms of Service can be read now, and at any time later from the wallet footer.

### ⚠️ SECURITY WARNING

You are running this interface from a public web server (``), not as a local file.

This software is designed to be run locally from your own computer (`file://`). Anyone hosting it on the web does so independently and without authorization — a hosted copy could have been modified, and using it means trusting that server with everything you type, including keys.

For maximum privacy, security, and legal compliance, download the official ZIP and open the HTML file directly from your device.

Download the official ZIP

###

### Accounts

###

### Reset this device

This removes the wallet from this device only. The blockchain is untouched — you can restore any wallet with its recovery phrase. Without the phrase, anything removed here is gone for good.
Always removed

- Wallet keys, seeds & accounts
- Cached balances, tokens & transaction history
- Notifications, to-do items & the last submitted transfer

Choose what else to remove
Contacts & your contact card (names, photos, phone, email) App preferences (theme & network endpoint)

### Settings

Security
Change the 6-digit PIN that unlocks this wallet. Backups you download afterwards will need the new PIN.
Passkey
Unlock with your device passkey (Face ID / Touch ID / Windows Hello) instead of typing your PIN.
Auto-lock
Lock the wallet after a period of inactivity.
Menu
Choose which sections appear in the left menu — from a bare-bones wallet to everything. Only Home (Dashboard, To-do, Activity) is always shown. Settings stays reachable from the gear at the top even if you hide System.
Stored history
Everything this wallet witnesses on-chain (chats, invoices & forms, file records, transfers) is kept inside the encrypted vault, so it survives blockchain pruning and travels with your backups. Choose what to retain — anything older is let go.
Backup & Restore
Your backup is the encrypted vault — it needs your PIN to open. Keep it safe; anyone with the file and your PIN can spend.
Network
Where this wallet reads balances and broadcasts transactions.
Blockchain
Gateway domain
Just the domain — e.g. zoobc.network. No port and no /api path.
https://
Every registered gateway, relay and archival node is listed under System › Network. The field above is for a custom or local endpoint that isn’t on-chain.
Archival node domain (optional)
Full-history source behind “All TX” in Activity. Leave empty to discover one from the on-chain archival registry.

### Enter your PIN

### Keep it on-chain longer

Pre-pay storage rent so the message / payload survives on-chain for the period you choose. Pick a duration — the fee updates to match.
…or keep it until an exact date & time
Fee to keep it ——

### Liquid payment

### Add contact

Name Note (optional) Wallets (name each one — e.g. Invoices, Payroll)

### Choose a contact

### Node settings

Browser → HTTPS gateway → node. zoobc.network serves TestNet, zoobc.net will serve MainNet; each gateway also fronts its own nodes. For a personal node go straight to it, e.g. http://127.0.0.1:8080.
Blockchain
Gateway / node base URL
Fallback nodes (optional, one per line)
If the gateway above is unreachable, the wallet automatically tries these nodes, then any gateways it previously learned from the blockchain. From whichever node answers, it re-reads the on-chain gateway / relay / archival lists to recover.
Air-gap mode — build & sign transactions but don't broadcast. Each transaction is shown as data + a QR code to carry to an online wallet's Submit page. Use this on an offline computer to keep your key off the internet.

### Signed — ready to broadcast

This transaction is signed but not sent. Copy it or scan the QR with an online wallet, then use its Submit page to broadcast.
Too large for a QR code — use Copy.

### Confirm transfer

To
Amount
Fee
Total
Completing takes 2–3 blocks — expect to wait about 30–45 seconds.