Skip to content
_STABLECOIN ISSUERS/

Issue stablecoins on a ledger that proves its reserves

Back every token 1:1 with segregated fiat, mint and redeem programmatically, and produce an immutable audit trail your auditors and regulators can trust.

reserve · ledger
LIVE
USD/2 1,000,000
world
reserve:fiat
USD/2 1,000,000
treasury:minted
holders:alice
USD/2 250,000
holders:bob
treasury:burned
USD/2 250,000
reserve:fiat
world
EUR/2 480,000
world
reserve:fiat
EUR/2 480,000
treasury:minted
holders:carol
_THE PROBLEM/

Spreadsheets cannot back a token

Reserve integrity is an accounting problem, not a smart-contract one.

Off-chain reserves, mint/burn events and bank balances live in disconnected systems. Reconciling them is manual, error-prone, and impossible to prove after the fact.

Policydaily-stripe-recon
NOT_OK
Drift detected0.50
asset USD/2run 01HGW4D7SXRQ
Balance compareUSD/2
Ledger balance1,000.00
Cash pool999.50
Drift0.50
error:balance drift for asset USD/2

ledger @ 23:59:59 ≠ cash pool @ 23:59:59 · flagged for review

0Reserve balances drift from circulating supply with no single source of truth.
1Mint and redeem flows are scripted ad-hoc, with no idempotency or replay safety.
2Auditors ask for point-in-time reserve proofs your stack cannot reconstruct.
3Every new banking partner or rail means another bespoke integration.

_PROOF/ Stables runs its reserve ledger on Formance — every token traceable to a segregated dollar.

_FLOW OF FUNDS/

Every token traces back to a dollar

Fiat in, token out — one auditable chain of double-entry transactions.

Deposits land in a segregated reserve, minting is posted against that reserve, and redemptions reverse the exact path. Balances are derived, never overwritten.

proof of reserves
fiat depositbank → reserve
reservesegregated 1:1
minttoken issued
redeemburn → payout
_CAPABILITIES/

The primitives issuers need

Built on the open-source Formance ledger. A double-entry core, programmable money movement and normalized connectivity — composed for reserve-backed issuance.

_RESERVE LEDGER/

point-in-time balances

RESERVE LEDGER

A double-entry account tree segregating fiat reserves per currency and per banking partner, with derived balances you can query at any timestamp.

GET200/v2/reserve/aggregate/balances?pit=2026-07-04T23:59:59Z
Aggregated reserves · as of PIT4,820,000.20EUR/2
EUR/2 · bnp4,820,000.20
USD/2 · column3,145,050.13
GBP/2 · clear912,426.04
PIT
2026-07now
_MINT / REDEEM/

exactly-once

MINT / REDEEM

Model issuance and redemption as deterministic Numscript transactions — idempotent, exactly-once, and reversible by construction.

Read the Numscript docs
_MINT/issuance
send [POINTS 500] (
  source = @world
  destination = @users:alice
)
_REDEEM/redemption
send [POINTS 500] (
  source = @users:alice
  destination = @world
)
_EXACTLY-ONCE/Idempotency-Key: mint-8841
TRY 1write
TRY 2hit: true
TRY 3hit: true
TX #4021POINTS +500
×1one write

deterministic · idempotent · reversible by construction

_PROOF OF RESERVES/

immutable log

PROOF OF RESERVES

Reconstruct circulating supply and backing reserves for any point in time, straight from the immutable transaction log.

proof of reserves · audit
LIVE
MATCH
reserve:fiat ↔ supply:USDC USD 1,000,000
MATCH
reserve:fiat ↔ supply:EURC EUR 480,000
DRIFT
D-1 supply vs reserve USD 0.00
MATCH
holders:alice ↔ mint tx USD 1,000,000
RESOLVE
point-in-time snapshot · T-0
MATCH
holders:bob ↔ redeem tx USD 250,000
MATCH
reserve:fiat ↔ supply:USDC USD 1,000,000
_BANKING CONNECTIVITY/

one schema, every rail

BANKING CONNECTIVITY

Normalize deposits and payouts from every bank and PSP into one schema, so adding a reserve partner never changes your logic.

1schema21 connectors
payments · normalized
LIVE
Stripe logo
PAY-INSEPA · EUR/2
+8,210.00
SUCCEEDED
Column logo
PAYOUTACH · USD/2
−12,400.00
PENDING
Stripe logo
PAY-INCARD_VISA · USD/2
+129.99
SUCCEEDED
Fireblocks logo
TRANSFEROTHER · BTC/8
−0.5200
SUCCEEDED
Wise logo
PAYOUTSEPA · EUR/2
−3,000.00
FAILED
_BY THE NUMBERS/

Reserve-grade, by design

reserve backing1:1segregated · per-currency
auditable history100%immutable · point-in-time
mint & redeemexactly-onceidempotent · replay-safe
time to integratedaysopen-source core
_NUMSCRIPT/

Minting is a transaction, not a script

Back every token with a deposit in the same atomic operation.

A single Numscript transaction moves fiat into the segregated reserve and issues the equivalent token to the holder — atomic, idempotent and auditable.

mint.num
// Mint a reserve-backed stablecoin against a fiat deposit
vars {
  account $holder
  monetary $amount
}

// 1. Fiat lands in the segregated reserve (1:1 backing)
send $amount (
  source = @world
  destination = @reserve:fiat
)

// 2. Issue the equivalent token to the holder
send $amount (
  source = @treasury:minted
  destination = $holder
)
_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

Stablecoin issuance, answered

01 / HOW IS 1:1 BACKING ENFORCED?

Every mint is posted against a matching fiat deposit in a segregated reserve account. Circulating supply and reserves are derived from the same immutable log, so backing is verifiable at any timestamp — not asserted after the fact.

02 / CAN I PRODUCE PROOF OF RESERVES?

Yes. Reconstruct circulating supply and backing reserves for any point in time straight from the transaction log, and hand auditors a reproducible figure instead of a spreadsheet snapshot.

03 / ARE MINT/REDEEM FLOWS SAFE TO RETRY?

Issuance and redemption are deterministic Numscript transactions — idempotent and exactly-once. A retried or replayed request can never double-mint or double-burn.

04 / WHAT ABOUT MULTIPLE BANKING PARTNERS?

Deposits and payouts from every bank and PSP normalize into one schema. Adding a reserve partner is a connector change, not a rewrite of your issuance logic.

_GET STARTED/

Build on infrastructure you can trust

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