Skip to content
_LEDGER/

A programmable ledger for money

A double-entry ledger built for engineers — atomic, immutable, and reconciled by construction.

Numscript
send [USD/2 100] {
  source = @world
  destination = @users:42
}

Model any movement, splits, fees, holds, in a purpose-built DSL.

Transaction
PostingUSD/2
@world-100.00
@users:42+100.00
Nets to 0double-entry

Atomic and balanced: every posting nets to zero.

Balances
@users:42
USD1,240.00
EUR320.00
USDC2,500.00

Multi-asset balances update instantly, queryable at any time.

Immutable
LOG #1280xa18e
LOG #1290x5d04
LOG #1300xe72c
tamper-evident chain

An append-only, tamper-evident log, history is never rewritten.

numscript · transaction · balances · immutable, programmable double-entry
ASSET COLORING

Fungible by default. Colored on demand.

Pool client money as one fungible balance, or color each unit by its funding source to trace provenance down to the account — same ledger, same accounts, one toggle.

Funds sources
bank:jpmc
$8.3M58%
bank:evolve
$4.1M29%
bank:column
$1.9M13%
3 sources · $14.3M
Ledger
5,005 accounts · jpmc 58% · evolve 29% · column 13%
Examples
user:0x7a4…$632.00
user:0x9ab…$1,247.50
user:0x3b9…$4,127.00
3 of 5,005 accounts
_NUMSCRIPT/

Money as code

Model any movement with Numscript.

Describe complex money movements — splits, fees, holds — in a purpose-built DSL. Every transaction is atomic: it either commits in full or not at all.

numscript
send [EUR 100] (
  source = @world
  destination = {
    85% to @sellers:acme
    15% to @platform:fees
  }
)
_DOUBLE-ENTRY/

Balanced by construction

Every posting nets to zero.

Debits always equal credits. The ledger enforces double-entry accounting natively, so your books can never silently drift — no end-of-day surprises.

debit
@world
−100.00
=
credit
@sellers:acme
+85.00
@platform:fees
+15.00
Σ debit = Σ credit
BALANCED
_ACCOUNTS/

Multi-asset, multi-account

Transactions in, balances out.

Open unlimited accounts and hold any number of assets in parallel. Every transaction updates balances instantly — query any account, in any currency, at any point in time.

transactions
LIVE
EUR/2 100000
USERS:1234
USERS:5678
EUR/2 50000
USERS:5678
PAYOUT:5678
USD/2 25000
USERS:5678
USERS:9876
JPY/0 123000
USERS:2342
WORLD
BTC/8 .000013
USERS:2342
PLATFORM:FEES
EUR/2 320000
PAYMENTS:IN
TREASURY
balances
accountamount
USERS:1234
EUR/2 123,000
USERS:5678
EUR/2 23,000
USD/2 32,000
USERS:2342
JPY/0 123,000
BTC/8 .000020
_LOG/

An immutable, queryable log

Every entry, forever.

The ledger is an append-only log. Query balances and history at any point in time, with a complete and tamper-evident audit trail behind every number.

ledger:main · postings
LIVE
TXN
world → sellers:acme EUR 85.00
TXN
world → platform:fees EUR 15.00
TXN
treasury → payouts:eu EUR 1,240.00
TXN
orders:1042 → world EUR 59.00
TXN
payments:in → treasury EUR 320.00
TXN
world → sellers:globex EUR 142.50
TXN
treasury → fees:vat EUR 38.10
_BULK PROCESSING/

Batch operations, commit in a single call.

The _bulk endpoint accepts a stream of ledger actions and processes them atomically, sequentially, or in parallel. Stage thousands of postings — idempotent by key — and let the ledger commit them in one round-trip.

Bulk processing API
POST/api/ledger/v2/main/_bulk

Buffering 9/16

Committed35,047,500≈ 10K tps sustained
_AGGREGATIONS/

Every segment is an axis.

One address space, three questions. Sum everything under a prefix, slice one state across every user, or drill into a single user's subtree — the structure you put in the address is the query language, computed where the postings live.

Aggregated balances
Aggregated balances
:main:pending:hold:frozen
every user · pending only · 18,482 accounts$182,440.12
_SHARDED BY DESIGN/

Group ledgers into buckets. Scale sideways.

Each bucket isolates throughput and storage, so you can run thousands of independent ledgers — per product, per region, per tenant — without coupling them operationally. Add ledgers inside a bucket, add buckets as you grow.

Architecture overview
bucket-01
bucket-02
bucket-03
bucket-04
bucket-05
bucket-06
FAQ

Questions, answered

01 / DOUBLE-ENTRY

Debits always equal credits. The ledger enforces double-entry natively, so balances can never silently drift.

02 / IMMUTABILITY

Postings are append-only. History is never rewritten; you query balances and entries as of any point in time.

03 / ATOMICITY

Each Numscript transaction commits in full or not at all — splits, fees and holds either all apply or none do.

04 / MULTI-ASSET

Hold any number of assets across unlimited accounts in parallel. Balances update instantly, per asset and per account.

05 / PERFORMANCE

The ledger sustains high transaction throughput while keeping the audit trail complete and queryable.

_GET STARTED/

Build on a ledger that never drifts

Atomic, immutable, double-entry by construction — modeled in Numscript.