Dynamic Ledgers Management lets you add and manage new blockchain ledgers by submitting an intent.
The initial release of Dynamic Ledgers Management in Version 1.19 provides support for EVM-based ledgers, and lets you connect to EVM-based private ledgers.
Adding a new ledger to Ripple Custody, or editing the details of the ledger, both involve submitting an intent (a secure request requiring approval), using the new v0_CreateLedger or v0_UpdateLedger intent type with the Propose an intent API operation. For more information about submitting an intent, see Propose intents.
Before you can successfully submit an intent to add a blockchain ledger, the following background setup is required:
Ask your Ripple liaison which ledgers are available to add. The current list, including the requisite payloads you need to add them, is given in Dynamic ledger payloads. If you want to add ledger that's not available, contact your Ripple liaison.
A new indexer needs to be spun up and online to support creation of the requested ledger account. For SaaS customers, Ripple does this for you. For on-prem customers, you need to do this yourself. In either case, your Ripple liaison will provide details.
To add a new blockchain ledger to the trusted ledgers for this instance:
Prepare the request body in the standard intent proposal format, with a
payloadblock similar to the example shown in Payload example for CreateLedger. For more information, see User-signed proposal request body.Call the Perform a dry run for an intent operation, with the
requestfield excluded. For more information, see Dry run intents.This step is optional, but highly recommended. A dry run can reveal errors or unintended consequences of the intent.
You can repeat this step more than once to obtain the required result.
Sign the request body and call the Propose an intent operation. For more information, see Propose an intent to create an entity.
Check the update. For more information, see Check updates.
This example adds an Ethereum Testnet Holesky ledger to the list of trusted ledgers:
{
"payload": {
"id": "ethereum-testnet-holesky",
"alias": "Ethereum Testnet Holesky",
"parameters": {
"type": "Ethereum",
"chainId": 17000,
"supportsEIP1559": true,
"nativeTickerName": "Ether Testnet Holesky",
"nativeTickerSymbol": "tETH",
"vaultLedgerIdentifier": "eth"
},
"description": null,
"customProperties": {},
"type": "v0_CreateLedger"
}
}For a list of payloads for currently supported ledgers, see Dynamic ledger payloads.
This example updates the Ethereum Testnet Holesky ledger:
{
"payload": {
"reference": {
"id": "ethereum-testnet-holesky",
"revision": 1
},
"alias": "Ethereum Testnet Holesky",
"parameters": {
"type": "Ethereum",
"chainId": 17000,
"supportsEIP1559": true,
"nativeTickerName": "Ether Testnet Holesky",
"nativeTickerSymbol": "tETH",
"vaultLedgerIdentifier": "eth"
},
"description": null,
"customProperties": {},
"type": "v0_UpdateLedger"
}
}For a list of update payloads for currently supported ledgers, see Dynamic ledger update payloads.