Real-time ledger platform

The ledger that keeps up with your business

A real-time, double-entry ledger for the full lifecycle of credit: AI agents consuming credits, SaaS platforms tracking usage, and web3 apps managing tokens.

Double-entry integrity Immutable audit trail API-first
Live double-entry engine

Every transaction, balanced on write

Watch a marketplace sale split into debits and credits, settle across accounts, and prove out to zero — in real time, never in a batch.

Debits Credits
POST /v1/transactionsTXN-204821 · MARKETPLACE_SALE$100.00÷[DEBITS]$100.00[CREDITS]$100.00[ACCOUNT][DR_BALANCE][CR_BALANCE]1000 · CASH2200 · VAT_PAYABLE2100 · PLATFORM_FEE3100 · VENDOR_PAYABLE4000 · REVENUE[BALANCE_CHECK]Σ debits $100.00 ═ Σ credits $100.00✓ COMMITTED

Built on a foundation you can trust

PostgreSQLRedisTemporalLaravelPHP 8.4
Use cases

Built for modern business

Whether you're building AI agents, SaaS products, or web3 applications.

Agentic commerce

Pay-per-use AI tools and MCP servers. Track credits, usage, and billing in real time as autonomous agents consume your services.

Credit-based SaaS

Usage billing, prepaid credits, and subscriptions. Flexible accounting for any billing model with instant balance queries.

Web3 + tokens

Native support for 18 decimal places — track ETH in Wei, not just whole tokens. On-chain ingestion with an offline 360° view.

The difference

Built for real-time, not batch

The problem

Traditional accounting systems weren't built for real-time, high-volume micro-transactions.

  • Batch processing delays leave balances stale
  • No support for pending & encumbered funds
  • Retrofitting ERPs is expensive and fragile
The solution

Ledga is an immutable, double-entry ledger designed for modern credit flows.

  • Balances computed on write, never stale
  • Multi-layer: settled, pending, encumbrance
  • API-first, built for developers
Capabilities

Everything you need to ship

One API, built on proper accounting — from real-time balances to full precision.

Real-time balances

Balances computed on write using database triggers. Query any account, any point in time, instantly.

Explore

Multi-layer

Settled, pending, and encumbrance layers. Know exactly what's confirmed vs what's in flight.

Explore

Immutable trail

Every transaction cryptographically linked. Full history, no edits, complete compliance.

Explore

API-first

RESTful API with webhooks for real-time events. SDKs for PHP, Python, and Node.js coming soon.

Explore

Double-entry

Proper accounting that always balances. Debits equal credits, every single transaction.

Explore

Crypto precision

Up to 18 decimal places per ledger. Track Wei, Satoshis, or any token at full precision.

Explore
Getting started

From zero to balanced in three steps

A ledger, a transaction, a balance — the whole lifecycle behind one API.

Step 01

Configure your books

Set up a ledger with your currency and precision, then define the chart of accounts for your business model.

POST /api/v1/transactions
{
  "reference": "TXN-2026-0001",
  "description": "Customer payment",
  "entries": [
    { "account": "1000", "debit": "100.00" },
    { "account": "4000", "credit": "100.00" }
  ]
}

Atomic · balanced · immutable

For developers

Transaction codes

Define complex financial movements once, execute them with a single API call.

POST /ledgers/{id}/trancodes
{
  "code": "MARKETPLACE_SALE",
  "entries_template": {
    "entries": [
      { "account": "1000", "type": "debit",
        "amount": "{params.amount}" },
      { "account": "2100", "type": "credit",
        "amount": "{percentage({params.amount}, 2.5)}" },
      { "account": "2200", "type": "credit",
        "amount": "{percentage({params.amount}, 0.5)}" },
      { "account": "3100", "type": "credit",
        "amount": "{percentage({params.amount}, 77)}" },
      { "account": "4000", "type": "credit",
        "amount": "{subtract({params.amount}, ...)}" }
    ]
  }
}

£100 sale breakdown

Balanced
1000CASH
100.00
2100PLATFORM_FEE
2.50
2200VAT_PAYABLE
0.50
3100VENDOR_SETTLE
77.00
4000REVENUE
20.00
TOTAL
100.00100.00
DEBITCREDIT
Multi-currency

Introducing: Strings

One customer. Every currency. One ledger discipline. Strings let an account live across as many single-currency ledgers as you operate in — without merging them.

[STRING]"Customer Wallets"
// 4 ledgers · 1 chart of accounts
+
GBP£
Single-CCY Ledger
CUST-001
FX-SUSPS
USD$
Single-CCY Ledger
CUST-001
····
FX-SUSPS
EUR
Single-CCY Ledger
CUST-001
····
FX-SUSPS
BTC
Single-CCY Ledger
CUST-001
····
FX-SUSPS
+
[MIRRORED]Create an account once. It exists everywhere on the string.
[FX_CONVERSION]
GBP_Ledger
-£100.00
CUST-001 · debit FX-SUSPS
@ 1.25
>
USD_Ledger
+$125.00
CUST-001 · credit FX-SUSPS

// One real cross-ledger transaction. Both books stay balanced. The rate is recorded on the entry, not assumed.

Why strings

Most ledgers force you to pick: keep currencies clean and run a separate ledger per currency, or smash them all into one ledger and lose the integrity that makes a ledger useful in the first place.

Ledga Strings give you both.

A String ties together a single-currency ledger per currency you operate in — and any account you create in one is mirrored across all of them. A customer wallet, an FX-suspense account, or a revenue line lives everywhere at once, and each ledger stays self-consistent.

01

Each ledger stays balanced in its own currency.

Auditors and regulators see a clean single-currency book, not a Frankenstein.

02

FX is explicit, not implicit.

A currency conversion is a real cross-ledger transaction with a known rate — not a hidden re-tag.

03

One API call for the whole portfolio.

Ask for a customer's balance once and get every currency back, with a base-currency total at today's rate.

A real-time ledger for credit-based business

No credit card required · Free tier available

Cookie settings

We use cookies to understand how the site is used and to improve your experience. Read our cookie policy.