Ryvo is non-custodial, but it is not built on the idea that every machine-payment relationship should look fully trustless at every moment. The protocol separates hard on-chain guarantees from soft product-level choices that integrations make for themselves.Documentation Index
Fetch the complete documentation index at: https://docs.ryvo.network/llms.txt
Use this file to discover all available pages before exploring further.
What the protocol guarantees
On-chain, Ryvo guarantees:- Balances live in protocol state, not in an operator database.
- Only allowlisted tokens can be used for settlement.
- Signed settlement messages are checked against the deployment
message_domain, which is derived in-program from a fixed Ryvo tag, the program ID, and the chain ID. - Channels and participants are checked against canonical PDAs, even when they arrive through
remaining_accounts. - Settlement only moves cumulative state forward - any message that does not increase
settled_cumulativeis rejected. - Withdrawals, channel unlocks, and signer rotations follow configured timelocks.
- Self-channels are explicitly rejected to prevent using settlement to bypass unlock timing.
What still depends on the relationship
Ryvo does not try to remove every real-world tradeoff between participants. For example:- One payee may require enough locked funds to make signed value effectively guaranteed; another may accept partial lockup or periodic settlement.
- One integration may settle every few seconds; another may settle in larger batches.
- One team may run settlement directly; another may use an operator for relay and coordination.
What “trust” means in Ryvo
In most Ryvo integrations, trust means one or more of:- how much unsettled usage a payee is willing to tolerate
- how much locked balance a payer is willing to dedicate to a specific channel
- how much the parties rely on off-chain monitoring, retries, and operator tooling
Operators and coordination
Ryvo supports optional operator layers. An operator can:- relay settlements
- batch and schedule submissions
- retry and monitor
- handle invoicing
- apply compliance checks
Authorities and upgrades
Two administrative roles exist, each with a two-step handoff:| Role | Controls | Handoff |
|---|---|---|
| Config authority | Fee recipient, fee basis points, registration fee, pending authority | update_config → accept_config_authority |
| Registry authority | Adding new allowlisted tokens, pending registry authority | update_registry_authority → accept_registry_authority |
- change
message_domain - change
chain_id - drain vault balances
- bypass withdrawal, unlock, or signer timelocks
- modify participant or channel state outside the normal instruction surface
Summary
Ryvo is a public settlement and clearing protocol for repeated machine-payment relationships. It gives those relationships room to choose their own point on the locked-capital / settlement-frequency / operational-trust spectrum, while holding a small set of properties constant: balances stay in protocol state, messages are bound to the deployment, settlement only moves forward, and channel maintenance is timelocked.See also
- Security properties - the specific on-chain checks
- Design principles
- Trust and collateral
