Ryvo decouples payment execution from settlement. Participants make many payments first through signed cumulative commitments, and settle them later on-chain. Each wallet registers once as a participant and keeps the sameDocumentation Index
Fetch the complete documentation index at: https://docs.ryvo.network/llms.txt
Use this file to discover all available pages before exploring further.
participant_id for the life of the deployment. Participants deposit allowlisted tokens into protocol balances. When one participant pays another, they create one permanent one-way payment channel for that token. The payer may optionally lock funds to that channel if the relationship needs guaranteed payment capacity.
On-chain objects
The current architecture uses global singletons plus bucketed participant and channel state:| Account | What it stores | Why it exists |
|---|---|---|
GlobalConfig | Authority, fee settings, chain ID, derived message_domain, timelock policy | Defines the deployment and the signing domain |
TokenRegistry | Allowlisted settlement tokens | Makes token support explicit rather than implicit |
ParticipantBucket + OwnerIndexBucket | Participant slots, balances, policy, BLS key metadata, owner->participant mapping | Scales participant state while preserving deterministic lookup |
ChannelBucket | Directional lane state for participant pairs per token | Tracks cumulative settlement, locks, and signer state per lane |
Signed messages
Ryvo uses two signed message formats:ryvo-cmt-v5- the unilateral cumulative commitment for one channelRyvo-round- the cooperative clearing-round body for several participants
message_domain, so a signature for one environment does not verify on another. Full byte-level layouts are on the Message formats reference.
Settlement paths
Those two messages feed three settlement instructions:| Mode | Instruction | When to use |
|---|---|---|
| Direct | settle_individual | One payer, one payee - the simplest path |
| Bundle | settle_commitment_bundle | One payee aggregating many payers’ commitments in one token |
| Cooperative clearing | settle_clearing_round | Several participants co-signing one shared round so many lanes advance together |
End-to-end flow
In the common case, an integration goes through these steps:- Register the payer and payee as participants.
- Deposit an allowlisted token.
- Create a one-way payment channel.
- Optionally lock funds to that channel for guaranteed capacity.
- Sign cumulative commitments off-chain as usage grows.
- Settle the newest valid state later.
What stays off-chain
Ryvo keeps signed payment updates off-chain until settlement. Most integrations store:- the latest signed
ryvo-cmt-v5per channel - usage or metering state
- bundle assembly logic
- cooperative round construction logic
Why Ryvo uses permanent identities and persistent lanes
Ryvo intentionally uses stable identities and permanent channels. The tradeoff is more long-lived on-chain state, but the protocol becomes much easier to work with:participant_idvalues do not recycle.- Off-chain services can index users without worrying about identity reuse.
- Channels do not close and reopen, so there is no reopened-channel replay surface.
- Replay protection is simpler.
- Payment channels stay stable for clients and operators.
Choosing a settlement mode
- Use direct settlement when one payer and one payee need the smallest possible surface and each lane can settle on its own.
- Use bundle settlement when one payee collects signed commitments from many payers in the same token and wants one transaction instead of many.
- Use cooperative clearing when several parties are willing to co-sign one shared round so many lanes can be advanced in one transaction.
Current deployment
| Field | Value |
|---|---|
| Program ID | 3UyUFeNsUYPpM6hMRf7H8wg3MKEXQ82rqnsXhZrUwgSD |
| Cluster | devnet |
| Message domain | a58a109a38f14cc27ef174135176cab3 |
| Gateway-channel settlement token | Official devnet USDC, mint 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU; resolve token_id from TokenRegistry or RYVO_PROTOCOL_DEVNET_USDC_TOKEN_ID |
Where to go next
Your first payment
Build the smallest useful Ryvo integration with real Anchor calls.
Payment channels
How one-way, permanent channels are modeled and maintained.
Commitments
How cumulative signed messages work and why they are cheap to update.
Instructions
The full on-chain instruction surface.
