Set up Omnibus in an existing Ripple Custody domain. The domain provides the vault assignment, user roles, account policies, compliance controls, and transaction governance that apply to the omnibus wallet and deposit wallets.
Omnibus automation uses system-signed intents to create deposit wallets, sweep deposits, and propagate ledgers. Before you make an omnibus structure operational, activate system-signed intents in Notary and create a narrowly scoped policy that allows the Omnibus service to submit only the required automation intent types.
Before creating an omnibus structure, confirm that you have:
- An existing domain for the omnibus structure.
- A vault assigned to the domain.
- Tickers and ledgers configured for the assets you intend to support.
- System-signed intents activated for the deployment.
- A system-signed policy that gives the Omnibus service access to required automated operations.
- Gas Station configured for just-in-time fee funding if non-native token sweeps require sponsored gas.
- Monitoring and balance-operations ownership defined.
For domain and policy concepts, see Domains and Policies. For the system-signed intent activation sequence, see System-signed intent configuration.
Omnibus supports one omnibus structure per domain. Create all related custody accounts in that domain:
- The omnibus wallet.
- Virtual accounts, including the host virtual account.
- Deposit wallets created for virtual accounts.
Using a dedicated domain for each omnibus structure keeps policy scope, audit, monitoring, and support boundaries clearer.
Omnibus uses system-signed intents for automated operations that do not require a user to sign each request. The Omnibus service still authenticates as a service caller, and policy conditions should identify that service caller with context.submitter.subject or context.submitter.custodyRoles.
Before Omnibus submits system-signed automation intents:
- Gateway must be configured for system-signed intents.
- The active Gateway system signing public key must be registered in Notary with
purpose: "SystemSignatures". NOTARY_SYSTEM_SIGNED_INTENTS_ENABLEDmust be set toenabled: true.- A matching policy with
intentOrigin: "SystemSigned"must allow the Omnibus service to submit the required intent types.
System-signed intent configuration is enabled by default at deployment level in current release packages, but system-signed traffic remains disabled until the Notary key registration, system property, and policy are in place.
For the full deployment and activation sequence, see System-signed intent configuration.
The Omnibus service needs a manually created policy that matches its system-signed automation intents:
| Automated operation | Intent type | Policy condition guidance |
|---|---|---|
| Create deposit wallets | v0_CreateAccount | Match the Omnibus service submitter and scope the policy to the omnibus domain. |
| Sweep deposits | v0_CreateTransactionOrder | Match the Omnibus service submitter and constrain the destination to the omnibus wallet where possible. |
| Propagate ledgers | v0_AddAccountLedgers | Match the Omnibus service submitter and constrain target accounts to Omnibus deposit wallets where possible. |
Use intentOrigin: "SystemSigned" and specify only the required intent types:
{
"intentTypes": [
"v0_CreateAccount",
"v0_CreateTransactionOrder",
"v0_AddAccountLedgers"
],
"intentOrigin": "SystemSigned",
"condition": {
"expression": "context.submitter.custodyRoles.includes('omnibus-service')",
"type": "Expression"
}
}Use the service role or subject value that your deployment issues to the Omnibus service. The role name (omnibus-service above) must match a value in the service caller's custody_roles token claim. If the policy includes an approval workflow, user-signed approvers must satisfy it; the service submitter does not count as a user approval.
Do not give Omnibus automation unrestricted permission to create or update policies. Policy creation changes the governance model itself and should remain controlled by independent policy-management approvals.
Creating an omnibus structure has two phases:
- Create the omnibus wallet: The user initiates the Omnibus creation flow with
alias,vaultId, andkeyStrategy, plus optional ledger, description, custom-property, ignored-account, and Gas Station settings. Omnibus validates the domain, prepares a custody account creation intent, and returns the omnibus record with an unsigned Custody intent payload. The client signs that payload and submits it toPOST /v1/intents. - Set up automation: Omnibus creates the host virtual account, initializes Accounting Service state, configures the omnibus wallet to skip quarantine for intra-domain sweeps, and checks Gas Station sponsorship. Omnibus does not validate the system-signed automation policy: you create that policy upstream, and no step of the creation flow checks it. Verify it through your normal governance process before treating the omnibus structure as operational.
Omnibus can use Gas Station for non-native token sweeps and withdrawals on supported Solana, XRPL, and EVM networks. Gas Station provides native gas to the deposit wallet or omnibus wallet that needs to broadcast the token transaction.
For native asset withdrawals, the host virtual account is responsible for the native network transaction fee in Omnibus accounting. Fee compensation or reimbursement records for Gas Station-funded non-native withdrawal gas depend on the final Omnibus accounting behavior for your release.
Plan the sponsorship model before creating the omnibus structure:
- Domain-wide sponsorship is simpler when all omnibus-related accounts need sponsorship.
- Account-level sponsorship limits sponsorship to selected accounts.
- Use just-in-time sponsorship. Fund the sponsor account, but do not pre-fund each Omnibus deposit wallet.
- Add the Gas Station account ID to the Omnibus ignored-account list at creation so native-token funding transactions are not processed as customer deposits.
When Omnibus configures the omnibus wallet for intra-domain sweeps, it uses the account compliance configuration API to set skipQuarantineFrom to Domain. This lets sweeps from deposit wallets arrive at the omnibus wallet without a second quarantine cycle. External deposits to deposit wallets still follow the normal confirmation and quarantine-release flow.
For configuration steps, see Manage a gas station with the API.
Omnibus supports lock states at two levels:
| Lock target | Effect | How to set |
|---|---|---|
| Omnibus structure | Blocks new withdrawals, internal transfers, and deposit wallet creation. Deposit detection and sweeps continue. | Set lockStatus when creating the omnibus structure. After creation, lock or unlock the omnibus wallet account with the core account operations. See Lock or unlock an account. |
| Virtual account | Blocks new operations for the associated tenant. Existing in-flight operations continue. | Lock or unlock at any time with the virtual account lock and unlock operations. See Lock or unlock a virtual account. |
Use virtual account locks for operational holds, incident response, or customer lifecycle events. Locks are not a replacement for custody policies on on-chain withdrawals.
When an operator adds a ledger to the omnibus wallet, Omnibus propagates that ledger to existing deposit wallets. This lets new deposits use the same ledger coverage as the omnibus wallet.
Ledger propagation is one-way:
- Add ledgers to the omnibus wallet.
- Let Omnibus add missing ledgers to deposit wallets.
- Avoid adding ledgers directly to deposit wallets.
If a deposit wallet has a ledger that the omnibus wallet does not support, sweeps on that ledger can fail until an operator resolves the mismatch.
| Responsibility | Owner |
|---|---|
| Domain and policy design | Customer operations and governance owners |
| System-signed intent activation | Customer platform/security team for on-premise, Ripple for managed SaaS where applicable |
| Omnibus system-signed policy governance | Customer operations and governance owners |
| Gas Station funding | Customer operations team |
| Sweep failure monitoring | Platform operations |
| Balance monitoring | Backoffice operations |
| Tenant-to-user mapping | Customer integration or business system |