{"templateId":"markdown","versions":[{"version":"v1.43","label":"v1.43 LTS","link":"/pt-br/products/custody/accounts-and-assets/blockchains/dynamic-ledgers","default":true,"active":true,"folderId":"714bb270"},{"version":"v1.42","label":"v1.42 STS","link":"/pt-br/products/custody/v1.42/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.41","label":"v1.41 STS","link":"/pt-br/products/custody/v1.41/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.34","label":"v1.34 LTS","link":"/pt-br/products/custody/v1.34/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.26","label":"v1.26 LTS","link":"/pt-br/products/custody/v1.26/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.19","label":"v1.19 LTS","link":"/pt-br/products/custody/v1.19/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"714bb270"},{"version":"v1.15","label":"v1.15 LTS","link":"/pt-br/products/custody/v1.15/accounts-and-assets/blockchains/dynamic-ledgers","default":false,"active":false,"folderId":"714bb270"}],"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"},"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. Starting in version 1.43, you can also add Sui ledgers and Canton networks. For Sui, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/accounts-and-assets/blockchains/sui/set-up-api#add-the-sui-ledger"},"children":["Set up Sui with the API"]},". For Canton, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator"},"children":["Connect your validator"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Adding a new ledger to ","Ripple Custody (Vault)",", 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":"/pt-br/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":"/pt-br/products/custody/governance/intents/manage-intents-and-approvals#submit-an-intent-with-the-api"},"children":["Propose intents"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Fresh environments contain no ledgers by default"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Environments newly deployed on version 1.19 or later contain no ledgers by default: listing ledgers on a fresh environment returns an empty list. Add the ledgers your organization needs either during ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/governance/genesis"},"children":["Genesis"]}," execution, which can add multiple ledgers at once, or by submitting a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_CreateLedger"]}," intent for each ledger, as described on this page."]}]},{"$$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":"/pt-br/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":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For a Canton network, you also need a validator that you or your node provider operate, connected to ","Ripple Custody (Vault)",". For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator#validator-prerequisites"},"children":["Validator prerequisites"]},"."]}]}]},{"$$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":"/pt-br/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":"/pt-br/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":"/pt-br/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":"/pt-br/products/custody/reference/api/openapi/intents/createintent"},"children":["Propose an intent"]}," operation. For more information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/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":"/pt-br/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":"/pt-br/products/custody/accounts-and-assets/blockchains/dynamic-ledgers-payloads"},"children":["Dynamic ledger payloads"]},". For a Canton payload, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator#ledger-payload-example"},"children":["Ledger payload example"]},"."]},{"$$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":"/pt-br/products/custody/accounts-and-assets/blockchains/dynamic-ledgers-update-payloads"},"children":["Dynamic ledger update payloads"]},". For a Canton update payload, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/pt-br/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator#update-the-canton-ledger"},"children":["Update the Canton ledger"]},"."]}]},"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-10-05T13:21:49.000Z","isTranslationFallback":true,"pagePropGetterError":{"message":"","name":""}},"slug":"/pt-br/products/custody/accounts-and-assets/blockchains/dynamic-ledgers","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}