{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/accounts-and-assets/blockchains/dynamic-ledgers","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Dynamic ledgers","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"dynamic-ledgers","__idx":0},"children":["Dynamic ledgers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Dynamic Ledgers Management lets you add and manage new blockchain ledgers by submitting an intent."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_CreateLedger"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_UpdateLedger"]}," intent type with the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/reference/api/openapi/intents/createintent"},"children":["Propose an intent"]}," API operation. For more information about submitting an intent, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents/manage-intents-and-approvals#submit-an-intent-with-the-api"},"children":["Propose intents"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before you can successfully submit an intent to add a blockchain ledger, the following background setup is required:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/dynamic-ledgers-payloads"},"children":["Dynamic ledger payloads"]},". If you want to add ledger that's not available, contact your Ripple liaison."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"propose-the-intent-to-add-or-update-the-ledger","__idx":2},"children":["Propose the intent to add or update the ledger"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To add a new blockchain ledger to the trusted ledgers for this instance:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Prepare the request body in the standard intent proposal format, with a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload"]}," block similar to the example shown in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#payload-example-for-createledger"},"children":["Payload example for CreateLedger"]},". For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents/intent-request-structure#user-signed-proposal-request-body"},"children":["User-signed proposal request body"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Call the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/reference/api/openapi/intents/intentdryrun"},"children":["Perform a dry run for an intent"]}," operation, with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["request"]}," field excluded. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents/manage-intents-and-approvals#dry-run-an-intent-with-the-api"},"children":["Dry run intents"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This step is optional, but highly recommended. A dry run can reveal errors or unintended consequences of the intent."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can repeat this step more than once to obtain the required result."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sign the request body and call the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/reference/api/openapi/intents/createintent"},"children":["Propose an intent"]}," operation. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents/manage-intents-and-approvals#submit-an-intent-with-the-api"},"children":["Propose an intent to create an entity"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Check the update. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/intents/manage-intents-and-approvals#check-state-with-the-api"},"children":["Check updates"]},"."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payload-example-for-createledger","__idx":3},"children":["Payload example for CreateLedger"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example adds an Ethereum Testnet Holesky ledger to the list of trusted ledgers:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"payload\": {\n        \"id\": \"ethereum-testnet-holesky\",\n        \"alias\": \"Ethereum Testnet Holesky\",\n        \"parameters\": {\n            \"type\": \"Ethereum\",\n            \"chainId\": 17000,\n            \"supportsEIP1559\": true,\n            \"nativeTickerName\": \"Ether Testnet Holesky\",\n            \"nativeTickerSymbol\": \"tETH\",\n            \"vaultLedgerIdentifier\": \"eth\"\n        },\n        \"description\": null,\n        \"customProperties\": {},\n        \"type\": \"v0_CreateLedger\"\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a list of payloads for currently supported ledgers, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/dynamic-ledgers-payloads"},"children":["Dynamic ledger payloads"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"payload-example-for-updateledger","__idx":4},"children":["Payload example for UpdateLedger"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example updates the Ethereum Testnet Holesky ledger:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"payload\": {\n        \"reference\": {\n            \"id\": \"ethereum-testnet-holesky\",\n            \"revision\": 1\n        },\n        \"alias\": \"Ethereum Testnet Holesky\",\n        \"parameters\": {\n            \"type\": \"Ethereum\",\n            \"chainId\": 17000,\n            \"supportsEIP1559\": true,\n            \"nativeTickerName\": \"Ether Testnet Holesky\",\n            \"nativeTickerSymbol\": \"tETH\",\n            \"vaultLedgerIdentifier\": \"eth\"\n        },\n        \"description\": null,\n        \"customProperties\": {},\n        \"type\": \"v0_UpdateLedger\"\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a list of update payloads for currently supported ledgers, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/dynamic-ledgers-update-payloads"},"children":["Dynamic ledger update payloads"]},"."]}]},"headings":[{"value":"Dynamic ledgers","id":"dynamic-ledgers","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Propose the intent to add or update the ledger","id":"propose-the-intent-to-add-or-update-the-ledger","depth":2},{"value":"Payload example for CreateLedger","id":"payload-example-for-createledger","depth":3},{"value":"Payload example for UpdateLedger","id":"payload-example-for-updateledger","depth":3}],"frontmatter":{"seo":{"title":"Dynamic ledgers"}},"lastModified":"2026-08-05T09:55:07.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/accounts-and-assets/blockchains/dynamic-ledgers","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}