Skip to content
_DIGITAL ASSET EXCHANGES/

Run an exchange ledger that always balances

Track customer balances, trades, fees and settlements across fiat and crypto rails on a single double-entry ledger — with the audit trail regulators expect.

exchange · ledger
LIVE
BTC/8 0.25
buyers:1042
sellers:8831
EUR/2 59.00
world:market
revenue:fees
ETH/8 1.40
buyers:2201
sellers:4410
USD/2 120.00
wallets:alice
world:withdraw
BTC/8 0.10
world:deposit
wallets:bob
BTC/8 0.25
buyers:1042
sellers:8831
_THE PROBLEM/

Internal balances and rails disagree

Custody, trading and settlement each keep their own books.

Customer wallets, the matching engine and your banking and on-chain rails drift apart. Reconciling them under load is where exchanges lose money and trust.

Policydaily-stripe-reconasset USD/2
pending:stripe0.00
fees:stripe0.00
users:wallets:stripe0.00
Ledger accounts
0.00
Cash pool
0.00

STRIPE_ACCOUNT_MAIN

account-based · the sum of ledger accounts equals the cash pool

0Customer balances are recomputed instead of derived from an immutable log.
1Fees, rebates and spreads are booked inconsistently across products.
2Fiat and crypto settlements reconcile on different schedules and systems.
3Proving solvency to an auditor means stitching together exports by hand.

_PROOF/ Exchanges on Formance keep custody, trading and settlement on one ledger that always balances.

_FLOW OF FUNDS/

From deposit to settled trade

Every leg of a trade is a posting on the same ledger.

Deposits credit a customer wallet, a matched trade moves balances between accounts, fees route to revenue, and withdrawals settle back out — all double-entry.

always balanced
depositrail → wallet
tradematch & post
feesto revenue
withdrawwallet → rail
_CAPABILITIES/

Built for exchange-grade money movement

On the open-source Formance ledger. Custody balances, trade postings and multi-rail settlement, unified.

_CUSTOMER WALLETS/

derived, never overwritten

CUSTOMER WALLETS

Per-customer, per-asset balances derived from an immutable double-entry log — never overwritten, always reconstructable.

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
_TRADE POSTINGS/

balanced by construction

TRADE POSTINGS

Express every fill, fee and rebate as a deterministic Numscript transaction so books balance by construction.

Read the Numscript docs
debit
@world
−100.00
=
credit
@sellers:acme
+85.00
@platform:fees
+15.00
Σ debit = Σ credit
BALANCED
_MULTI-RAIL SETTLEMENT/

fiat + crypto, one model

MULTI-RAIL SETTLEMENT

Normalize fiat PSPs, banks and on-chain rails into one settlement model and keep internal orders in sync with provider refs.

orderssyncexchange
orders:1042EUR 59.00pi_3Qa…7x
SYNCED
orders:1043EUR 120.00ch_2Bd…9k
SYNCED
orders:1044EUR 18.50tr_8Wz…1m
SYNCING
orders:1045EUR 240.00po_5Ny…4p
SYNCED
orders:1046USD 310.00pi_1Kc…3v
SYNCED
orders:1047GBP 42.00ch_9Lm…2w
SYNCED
orders:1048EUR 85.00tr_4Hp…6y
SYNCED
orders:1049EUR 12.75po_7Nx…1z
SYNCED
_BY THE NUMBERS/

Consistency under load

balance drift0derived · immutable
solvency viewreal-timepoint-in-time
fiat + cryptomulti-assetone ledger
_NUMSCRIPT/

A trade that cannot unbalance the books

Move balances and route the fee in one atomic posting.

Settle a matched trade between two customers and route the fee to revenue — atomic and idempotent.

trade.num
// Settle a matched trade and route the fee
vars {
  account $buyer
  account $seller
  monetary $gross
  monetary $fee
}

send $gross (
  source = @world:market
  destination = {
    $fee to @revenue:fees
    remaining to $seller
  }
)

send $gross (
  source = $buyer
  destination = @world:market
)
_VOICES/

Trusted by builders

LiberisLiberis
Formance enabled us to ship new lending products faster by providing a customizable foundation that let us reliably express the complexities of our flow of funds.

Embedded finance · reconciliation across 14 countries

See customer story
DoctolibDoctolib
Formance is the foundation of our Financial OS, the open-source approach lets us retain control over this key component.

Healthcare · Financial OS

PayflipPayflip
Formance helped us kick off our move into fintech, with robust infrastructure and intuitive developer tooling.

Benefits · fintech infrastructure

_TRUST/

Built for regulated money.

Enterprise controls, the certifications auditors ask for, and an immutable record, out of the box.

See our trust center
THE COMPLIANCE STACK
IAM, RBAC & SSO
Non-repudiation
Audit logs
Observability & monitoring
Real-time events
Admin console
_AUDIT-LOG/ NON-REPUDIATION

09:41:07Z AUDIT gateway POST /api/ledger/v2/main/transactions 200 sub:ops@acme.io

09:41:09Z LOG id:4093 NEW_TRANSACTION ledger:main

09:41:12Z LOG id:4094 SET_METADATA ledger:main

09:41:15Z LOG id:4095 REVERTED_TRANSACTION ledger:main

09:41:18Z AUDIT gateway GET /api/ledger/v2/main/logs 200 sub:audit@acme.io

CERTIFICATIONS
AICPA SOC IICERTIFIED
ISO 27001CERTIFIED
DORACOMPLIANT
REGULATORY FRAMEWORKS
EMIFCAMTLNYDFS Trust CharterOCC CharterMiCAGENIUS
_ATTESTED/
FAQ

Exchange ledgers, answered

01 / HOW DO BALANCES STAY CORRECT UNDER LOAD?

Customer balances are derived from an immutable double-entry log rather than recomputed in place. Concurrent fills, fees and settlements post as transactions, so the books cannot drift even at peak throughput.

02 / CAN I SHOW SOLVENCY IN REAL TIME?

Yes. Because every wallet balance is reconstructable from the log, you can produce a point-in-time solvency view across fiat and crypto without stitching exports together by hand.

03 / HOW ARE FEES AND REBATES HANDLED?

Every fill, fee and rebate is an explicit posting in the same transaction. There is no separate fee system to reconcile — revenue is booked as the trade settles.

04 / DO YOU SUPPORT FIAT AND CRYPTO RAILS?

Fiat PSPs, banks and on-chain rails normalize into one settlement model, and internal orders stay linked to provider references so reconciliation is automatic.

_GET STARTED/

Build on infrastructure you can trust

See how Formance fits your stack, book a demo, or start building today.