Accounting in Rhyza
Last reviewed: Oct 2, 2026
Rhyza uses double-entry accounting to record Interledger packet interactions. Every transaction—whether successful, failed, or rejected—is processed by Rhyza’s internal ledger and converted into financial records with equal and opposite entries between internal accounts.
Accounts within Rhyza are an FSP’s internal peer accounts used to fund payments, not the accounts of the FSP’s customers. This distinction is crucial for understanding how Rhyza handles transactions and settlements.
An asset represents a transferrable item of value. Although the Interledger Protocol (ILP) supports the transfer of any asset deemed to have value, assets are generally denominated in a currency. For example fiat currencies, central bank digital currencies, and branded currencies (such as merchant reward points).
Part of Rhyza’s integration requirements include adding one or more supported assets.
An asset is made up of the following properties.
| Property | Type | Description | Example |
|---|---|---|---|
value | BigInt | A numerical amount | 10000 |
assetCode | String | A code representing the asset. An ISO 4217 currency code should be used whenever possible. | "USD" |
assetScale | Integer | The display scale of the asset, used to format human-readable amounts. | 2 |
While the assetScale is used for display purposes, Rhyza’s internal ledger operates at a fixed high precision (scale 20). All accounting entries are stored at this scale to ensure consistent precision across all types of assets and transactions.
To convert an asset’s value into an amount that’s easier to interpret, apply the following formula.
Using the example data from the preceding table, the formula looks like this:
Rhyza uses liquidity accounts to track the amounts available to fund transactions. Rhyza doesn’t physically hold funds in each account; instead, it uses double-entry accounting to record the transactions. The actual settlement of amounts owed, in which funds are physically exchanged, occurs outside of both Rhyza and the Interledger Protocol.
In Rhyza, liquidity is tracked exclusively for peering relationships.
Rhyza manages peer liquidity through a set of specialized accounts for each peering relationship in an asset-specific ledger. These accounts work together to track and enforce liquidity limits using a two-phase commit process.
Every peer relationship involves four primary ledger accounts (and their internal system counterparts):
| Account type | What the account represents |
|---|---|
| Liquidity | Tracks pre-funded capital or credit lines. This is where settlement deposits are recorded. |
| Clearing | Tracks the net balance of successful Interledger packet exchanges. |
| Suspense | Temporarily holds funds during the two-phase commit (reservation) process. |
| FSP accounts | Internal “Accounting System Entity” accounts that serve as counterparties to maintain double-entry integrity. |
When a transfer is initiated, Rhyza verifies that the peer has sufficient liquidity by summing the balances of their Clearing and Liquidity accounts:
A transfer is only processed if the
Rhyza uses a two-phase commit to ensure ledger consistency:
- Reservation: Funds are moved from the sender’s Clearing Account to their Suspense Account.
- Commit: If the payment is fulfilled, the reservation is released (moved from Suspense back to Clearing) and the final transfer is recorded from the sender’s Clearing Account to the receiver’s Clearing Account.
- Reject: If the payment fails or is rejected, the reserved funds are moved from the Suspense Account back to the sender’s Clearing Account.