LATTICE

Launch your own blockchain.

Security on day one

Every chain inherits the network's full proof of work from block zero. No validator set to bootstrap, no cold-start attack window.

Your chain, your rules

Launch a sovereign chain with its own policy in one command, no permission needed.

Mine once, earn everywhere

Full hashpower on every chain you subscribe to instead of a slice on each, earning on every block it clears.

Quickstart

The full node serves RPC, gossip, trustless sync, mempool, and child-chain deploy. Mining is external — the node serves block templates and runs no mining loop, so you bring up a node first and then point a miner at it.

run a node
git clone https://github.com/adalinxx/lattice-node
cd lattice-node
swift build -c release

# Join the network. --min-peer-key-bits 16 is required to peer with the seeds.
.build/release/node --autosize --rpc-port 8080 --min-peer-key-bits 16

# In another shell, confirm it's up and syncing:
curl http://localhost:8080/api/chain/info

With a node running, attach a miner. Mining lives in a separate process: the node hands out templates; a worker — driven by the coordinator via --worker-executable — searches the easiest target across the chains you subscribe to, and each solution is accepted by whichever chains it clears. The bundled lattice-miner is a CPU worker; lattice-miner-gpu is a GPU worker that auto-detects CUDA (NVIDIA), Metal (Apple), or OpenCL (AMD/Intel). Any miner that implements the worker protocol plugs in.

attach a miner
# Point the coordinator at a running node; it spawns CPU miner workers.
lattice-mining-coordinator \
  --node http://127.0.0.1:8080/api \
  --rpc-cookie-file ~/.lattice/.cookie \
  --worker-executable "$(command -v lattice-miner)" \
  --workers 2

Getting started · Operations · Worker protocol

Build a chain

Deploy a child chain under any parent and define its validity with a policy — opt-in, chain-defined rules enforced by every subscriber. Policies are deterministic validity, not permissionless contracts.

deploy a chain
# Deploy a child chain under Nexus (privileged — uses the node's RPC cookie).
curl -X POST http://localhost:8080/api/chain/deploy \
  -H "Authorization: Bearer $(cat ~/.lattice/.cookie)" \
  -H "Content-Type: application/json" \
  -d '{
    "directory": "Payments",
    "parentDirectory": "Nexus",
    "targetBlockTime": 3600000,
    "initialReward": 1048576,
    "halvingInterval": 876600,
    "maxTransactionsPerBlock": 5000,
    "maxStateGrowth": 3000000,
    "maxBlockSize": 10000000,
    "retargetWindow": 100,
    "wasmPolicies": []
  }'

Deploy seeds the chain locally and returns its genesis. It becomes discoverable to every node once a genesis-action transaction for it lands in the parent chain — an ordinary mempool transaction any miner can include, so it isn't tied to your node winning a block and survives your node going offline. The parent records only the opaque {directory, genesis-CID} anchor; it never judges the child's contents.

RPC API · Protocol

Spec & security

Consensus is Hierarchical GHOST — the heaviest descendant subtree, rooted upward toward an absolute proof-of-work root. Security rests on independent per-chain validation and voluntary subscription, not on trusting any one chain or operator.

Network

Live height and peers read directly from the public seed nodes, refreshed every 15 seconds. The numbers are whatever the nodes report right now. Browse Nexus blocks and transactions in the block explorer.

ChainRegionHeightPeersStatus