FRAGMENT is a toolkit for building products that move and track money. It includes an API and Dashboard for designing, implementing, and operating your Ledger.
How it works
Model
fund_transfer
AccountAmount
assets/bank/checking
{{amount}}
liabilities/payable/vendor
{{vendor_pay}}
income/service-revenue
{{revenue}}
Add+
user_payment
AccountAmount
assets/receivables/user
{{pay_amount}}
liabilities/escrow/hold
{{pay_amount}}
assets/cash/operating
{{fee}}
Add+
vendor_payout
AccountAmount
expense/payouts/vendor
{{payout}}
assets/cash/operating
{{payout}}
expense/fees/processing
{{proc_fee}}
Add+

Your product as a double entry chart of accounts.
Write
TypeScript
1await fragment.addLedgerEntry({
2 ik: "some-ik",
3 ledgerIk: "your-ledger-ik",
4 type: "user_funds_account",
5 parameters: {
6 user_id: "user-1",
7 funding_amount: "10000",
8 },
9});
Ledger entries for every event in your funds flow.
Read
getBalance()
Available
0
1
2
3
4
5
6
7
8
9
Balances directly from FRAGMENT.
Featured
MCP
Accounts
assets
cash
receivables
user
order
liabilities
payables
restaurant
│ ├order
│ └payout
driver
order
income
platform_fee
Connect your agents to FRAGMENT over MCP and use AI to design your schema.
Documentation
mutation AddLedgerEntry($ik: SafeString!, $entry: LedgerEntryInput!) {
  addLedgerEntry(ik: $ik, entry: $entry) {
    ... on AddLedgerEntryResult {
      entry {
        created
        posted
      }
      lines {
        amount
      }
    }
    ... on Error {
      code
      message
    }
  }
}