---
title: "Every account its own chain: inside the block lattice"
description: "Traditional blockchains put every transaction in one line. XE gives every account its own chain instead. Here's how the lattice works and why it's fast."
url: https://xe.marketized.io/blog/every-account-its-own-chain
published: 2026-09-02
topics: ["Protocol"]
authors: ["XE Protocol"]
---

# Every account its own chain: inside the block lattice

_September 2, 2026 · 2 min read_

Traditional blockchains put every transaction in one line. XE gives every account its own chain instead. Here's how the lattice works and why it's fast.

The block lattice is the data structure at the heart of XE. Most blockchains order every transaction into a single global chain: one shared queue, and every wallet waits its turn. The lattice gives **every account its own chain** instead.

## Account chains

Every address has a chain of blocks. Each block's `Previous` field points to the hash of the block before it on the same chain. The first block, the open block, has `Previous` set to `"0"`.

Because an account only ever appends to its own chain, it never waits for anyone else. A thousand accounts can each add a block at the same moment, in parallel.

## Moving value takes two blocks

1. A **send** block on the sender's chain debits the sender and names the destination and amount. This creates a pending send.
2. A **receive** block on the recipient's chain credits them. Its `Source` field references the send block's hash, consuming the pending send.

Those cross-chain references are what tie the independent chains into one structure: a directed acyclic graph, the lattice.

> **Asynchronous by design:** Settlement is asynchronous. The send is final for the sender immediately; the recipient picks it up whenever their node publishes the receive.

## Validation without a global vote

A block is checked locally: its signature (ed25519), the balance change, and a small proof-of-work (blake2b) that makes spam expensive. None of that needs the rest of the network to agree first, which is why normal operation doesn't use consensus at all.

Consensus only runs when an account tries to publish two different blocks at the same position in its chain. That's the next post: [consensus only when something goes wrong](https://xe.marketized.io/blog/consensus-only-when-something-goes-wrong).
