Wallet Features
Wallet Features
Detailed reference for all features in the XE web wallet.
#Setup flow
New users are presented with two options:
#Create wallet
- A random 32-byte seed is generated via
crypto.getRandomValues - User sets a passphrase (used for AES-GCM encryption)
- Seed is displayed once with a confirmation prompt ("I have saved my seed")
- Seed is encrypted and stored in
localStorage - Wallet unlocks and starts the auto-receive poller
#Import wallet
- User pastes a 64-character hex seed
- User sets a passphrase
- Seed is validated, encrypted, and stored
- Wallet unlocks and starts polling
#Main wallet page
The primary interface after unlocking.
#Address and balances
- Full account address with copy-to-clipboard
- Multi-asset balance display showing XE and XUSD separately
#Send form
| Field | Description |
|---|---|
| Destination | Recipient account address (64 hex characters) |
| Amount | Integer amount to send |
| Asset | XE or XUSD (dropdown) |
Submitting a send:
- Fetches current chain state (frontier, balance) from the API
- Builds a send block with correct previous hash and debited balance
- Computes PoW in the browser (Blake2b)
- Signs with ed25519 (tweetnacl)
- Submits to the node API
#Claim form
Claim 100 XUSD from the testnet faucet. Rate limited to once per 24 hours per account. Follows the same build-sign-submit flow as sends.
#Activity log
Displays the last 20 transactions for the active wallet, showing block type, amount, counterparty, and timestamp.
#Block history
Full block chain for the account, expandable to show all fields of each block.
#Auto-receive
A background poller runs every 5 seconds to detect and process pending sends.
#Flow
- Fetch pending sends for each wallet from the API
- For each pending send, build a receive block
- Compute PoW
- Sign the block
- Submit to the API
#Events
The auto-receive system emits events for UI feedback:
| Event | Description |
|---|---|
data | Pending sends fetched |
receiving | Processing a specific pending send |
pow | PoW computation started |
received | Block successfully submitted |
error | Processing failed |
#Multi-wallet spacing
When multiple wallets are active, auto-receive processes them sequentially with a 600 ms delay between wallets to avoid overwhelming the node API.
#Multi-wallet management
#Create new wallet
Generate a random seed and encrypt it with the existing passphrase. The new wallet is added to the wallets array in localStorage.
#Import wallet
Paste a 64-character hex seed. The seed is validated, encrypted, and stored.
#Wallet operations
| Operation | Description |
|---|---|
| Switch active | Select a different wallet from the header dropdown |
| Rename | Change the display name |
| Delete | Remove the wallet (disabled if only one remains) |
| Reveal seed | Re-authenticate with passphrase, then display the seed |
The wallet switcher appears in the layout header and shows the active wallet name and a truncated address.
#P2P Chat
Peer-to-peer messaging between XE accounts.
#Starting a conversation
Enter a recipient's account address to open a new conversation thread. The wallet automatically registers the active account in the node's directory on page load.
#Message display
- Messages are colored by direction (sent vs. received)
- Timestamps shown for each message
- Real-time updates via Server-Sent Events (SSE)
- Contact list with recent conversations
#Security
All chat messages are signed with ed25519 detached signatures. The signature covers the message envelope, proving the sender's identity. See Cryptography for details.
#Compute management
Manage virtual machine leases from the wallet.
#Provider list
Browse available providers showing:
- Account address
- Available resources (vCPUs, memory, disk)
- Current availability status
#Lease request
| Field | Description |
|---|---|
| Provider | Selected provider address |
| vCPUs | Number of virtual CPUs |
| Memory | Memory in MB |
| Disk | Disk in GB |
| Duration | Lease duration in seconds |
A real-time cost calculator updates as fields change, showing:
- XUSD cost breakdown (vCPU + memory + disk)
- Total XUSD cost
- Required provider stake
- XE reward for provider
#VM management
Active leases are displayed with:
- VM status (running, pending, settled)
- Resource allocation
- Connection credentials
- Terminal for command execution against the VM
- Auto-refresh of VM status
#DAO Governance
Participate in state chain governance as a DAO member.
#View state chain
- Current state chain tip (latest block index and hash)
- Recent blocks with operation summaries
#Draft block
- Add operations (
SETkey/value orDELETEkey) - Preview the operation list
- Generate the canonical hash for the proposed block
#Sign
If the active wallet is a DAO member:
- Sign the block hash with the wallet's key
- View the accumulated signatures
#Import signatures
For multi-party signing:
- Import signatures from other DAO members (paste signed payloads)
- Track signature count vs. threshold
#Submit
When the required signature threshold is met, submit the block to the network.
#State inspector
Browse the DAO state chain data.
#Blocks tab
- Paginated list of state chain blocks
- Each entry shows index, hash, operation count, signature count, timestamp
- Click to view block detail:
- All operations with
SET/DELETEbadges - Key and value for each operation
- Signer addresses and signatures
- All operations with
#KV State tab
- Filter by key prefix
- Keys grouped by namespace
- Pretty-printed values (JSON formatted where applicable)
- Copy buttons for keys and values
#See also
- Wallet Overview -- architecture and tech stack
- Wallet Security -- encryption and session management
- Cryptography -- signing primitives
- Proof of Work -- client-side PoW details
- Compute Leasing -- lease lifecycle
- State Chain -- DAO governance model