Documentation

Accounts & Wallets

How accounts, keys, and wallets work on the XE block lattice. Ed25519 key pairs, account addresses, block types, and getting started with the CLI.

← All Docs Accounts & Keys

On this page

1. Account Model

XE uses a block-lattice architecture where every account maintains its own blockchain. Each block's Previous field points to the hash of the preceding block. The first block has Previous = "0".

Transfers require two blocks: a send (debits the sender's chain) and a receive (credits the recipient's chain, referencing the send hash). This cross-chain referencing creates a directed acyclic graph (DAG).

Non-conflicting transactions are final the moment they pass validation. Consensus only activates for equivocation (double-spend attempts).

2. Ed25519 Key Pairs

Every account is an ed25519 key pair. The account address is the hex-encoded 32-byte public key – 64 lowercase hex characters. No base32, bech32, or checksum encoding.

3. Create a Wallet

Use the xe CLI to generate a new wallet.

# Generate a new wallet (ed25519 key pair)
xe wallet create

# Output:
# Wallet created
# Address: 3b66f35ce20c29e383dab3570d8fe9c2b3220058...
# Seed saved to ~/.xe/wallet.key

4. Fund Your Account

On testnet, claim 100 XUSD from the faucet (once per 24 hours per account). XUSD is used to pay for compute leases and confers voting weight for consensus.

# Claim 100 XUSD from the faucet (once per 24 hours)
xe fund

# Then receive the pending claim
xe receive
# Check your balances (XE and XUSD)
xe wallet balance

# Output:
# XE:   0
# XUSD: 0

5. Send & Receive

Transfers require a send block (debiting the sender) and a receive block (crediting the recipient). The recipient must explicitly receive pending sends.

# Send XUSD to another account
xe send <recipient_address> 50 --asset XUSD

# Recipient must run 'xe receive' to credit their chain

6. REST API

The core node exposes an HTTP REST API on port 8080. Rate limited: 100 req/s sustained, 500 burst per IP. JSON encoding. Hex-encoded hashes and keys. Unix nanosecond timestamps.

# Query account via REST API
curl https://ldn.test.network/api/accounts/<address>

# Submit a block via REST API
curl -X POST https://ldn.test.network/api/blocks \
  -H "Content-Type: application/json" \
  -d '{"type":"send","account":"...","previous":"...","balance":...}'

# Compute PoW server-side (for constrained devices)
curl -X POST https://ldn.test.network/api/pow \
  -H "Content-Type: application/json" \
  -d '{"hash":"..."}'
Testnet nodes: ldn.test.network, nyc.test.network, ffm.test.network. API available at /api/*.

7. Block Types

XE supports eight block types. Each is signed with ed25519 and includes a blake2b proof-of-work nonce for anti-spam.

8. Key Points

← Back to Documentation