{"templateId":"markdown","versions":[{"version":"v1.43","label":"v1.43 LTS","link":"/products/custody/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.42","label":"v1.42 STS","link":"/products/custody/v1.42/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.41","label":"v1.41 STS","link":"/products/custody/v1.41/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Architecture and responsibilities","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":"architecture-and-responsibilities","__idx":0},"children":["Architecture and responsibilities"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody"," supports Canton through a ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["bring your own validator"]}," (BYOV) model. You or a node provider that you contract operate the Canton validator. ","Ripple Custody"," connects to that validator and manages your parties."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Canton Network terms, Ripple fills the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.canton.network/global-synchronizer/understand/validator-roles#party-management"},"children":["Party Management"]}," role, and you or your node provider fill the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.canton.network/global-synchronizer/understand/validator-roles"},"children":["Validator Operator"]}," role."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"architecture","__idx":1},"children":["Architecture"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    subgraph Custody[\"Ripple Custody\"]\n        Core[\"Core and policy engine\"]\n        Vault[\"Vault<br/>(HSM or KMS)\"]\n        UIS[\"Unified Indexer Service v2<br/>(Canton indexer)\"]\n    end\n    subgraph Customer[\"You or your node provider\"]\n        Validator[\"Canton validator<br/>(Splice Validator App)\"]\n        ValParty[\"Validator service party<br/>(validator-held key)\"]\n    end\n    DAR[\"DA Registry\"]\n    Net[\"Canton Network<br/>(Global Synchronizer)\"]\n\n    Core --> UIS\n    Vault -- \"signs for your parties\" --> UIS\n    UIS -- \"Ledger API (gRPC)<br/>Validator API (REST)\" --> Validator\n    UIS -- \"DA Registry API (REST)\" --> DAR\n    Validator --> Net\n    ValParty --- Validator\n","diagramHtml":"<svg id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1483.953125px;\" viewBox=\"0 0 1483.953125 471\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .error-icon{fill:#552222;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .error-text{fill:#552222;stroke:#552222;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-thickness-normal{stroke-width:1px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-thickness-thick{stroke-width:3.5px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-pattern-solid{stroke-dasharray:0;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .marker{fill:#333333;stroke:#333333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .marker.cross{stroke:#333333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 p{margin:0;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .cluster-label text{fill:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .cluster-label span{color:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .cluster-label span p{background-color:transparent;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .label text,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 span{fill:#333;color:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node rect,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node circle,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node ellipse,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node polygon,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .rough-node .label text,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node .label text,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .image-shape .label,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .icon-shape .label{text-anchor:middle;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .rough-node .label,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node .label,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .image-shape .label,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .icon-shape .label{text-align:center;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node.clickable{cursor:pointer;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .arrowheadPath{fill:#333333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .flowchart-link{stroke:#333333;fill:none;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .cluster text{fill:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .cluster span{color:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 rect.text{fill:none;stroke-width:0;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .icon-shape,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .icon-shape p,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .icon-shape .label rect,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 .node .neo-node{stroke:#9370DB;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node rect,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].cluster rect,#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-Customer\" data-look=\"classic\"><rect style=\"\" x=\"455.1875\" y=\"8\" width=\"756.03125\" height=\"177\"></rect><g class=\"cluster-label\" transform=\"translate(741.4375, 8)\"><foreignObject width=\"183.53125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>You or your node provider</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-Custody\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"205\" width=\"743.953125\" height=\"258\"></rect><g class=\"cluster-label\" transform=\"translate(325.7265625, 205)\"><foreignObject width=\"108.5\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Ripple Custody</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M256.672,273L273.215,273C289.758,273,322.844,273,355.93,273C389.016,273,422.102,273,446.125,275.924C470.148,278.848,485.109,284.696,492.59,287.62L500.07,290.544\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-L_Core_UIS_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Core_UIS_0\" data-points=\"W3sieCI6MjU2LjY3MTg3NSwieSI6MjczfSx7IngiOjM1NS45Mjk2ODc1LCJ5IjoyNzN9LHsieCI6NDU1LjE4NzUsInkiOjI3M30seyJ4Ijo1MDMuNzk1NjYyNzE1NTE3MiwieSI6MjkyfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd)\"></path><path d=\"M226.836,389L248.352,389C269.867,389,312.898,389,350.957,389C389.016,389,422.102,389,446.125,386.076C470.148,383.152,485.109,377.304,492.59,374.38L500.07,371.456\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-L_Vault_UIS_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Vault_UIS_0\" data-points=\"W3sieCI6MjI2LjgzNTkzNzUsInkiOjM4OX0seyJ4IjozNTUuOTI5Njg3NSwieSI6Mzg5fSx7IngiOjQ1NS4xODc1LCJ5IjozODl9LHsieCI6NTAzLjc5NTY2MjcxNTUxNzIsInkiOjM3MH1d\" data-look=\"classic\" marker-end=\"url(#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd)\"></path><path d=\"M687.439,292L698.191,287C708.944,282,730.448,272,759.667,244.333C788.885,216.667,825.818,171.333,862.087,146.863C898.356,122.392,933.961,118.785,951.764,116.981L969.567,115.177\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-L_UIS_Validator_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_UIS_Validator_0\" data-points=\"W3sieCI6Njg3LjQzODg1ODY5NTY1MjEsInkiOjI5Mn0seyJ4Ijo3NTEuOTUzMTI1LCJ5IjoyNjJ9LHsieCI6ODYyLjc1LCJ5IjoxMjZ9LHsieCI6OTczLjU0Njg3NSwieSI6MTE0Ljc3NDAwNzg0MzcwMTY1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd)\"></path><path d=\"M671.652,370L685.035,377.667C698.419,385.333,725.186,400.667,757.036,408.333C788.885,416,825.818,416,867.767,416C909.716,416,956.682,416,980.165,416L1003.648,416\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-L_UIS_DAR_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_UIS_DAR_0\" data-points=\"W3sieCI6NjcxLjY1MTgzODIzNTI5NDEsInkiOjM3MH0seyJ4Ijo3NTEuOTUzMTI1LCJ5Ijo0MTZ9LHsieCI6ODYyLjc1LCJ5Ijo0MTZ9LHsieCI6MTAwNy42NDg0Mzc1LCJ5Ijo0MTZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd)\"></path><path d=\"M1186.219,104L1190.385,104C1194.552,104,1202.885,104,1211.219,104C1219.552,104,1227.885,104,1235.552,104C1243.219,104,1250.219,104,1253.719,104L1257.219,104\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-L_Validator_Net_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Validator_Net_0\" data-points=\"W3sieCI6MTE4Ni4yMTg3NSwieSI6MTA0fSx7IngiOjEyMTEuMjE4NzUsInkiOjEwNH0seyJ4IjoxMjM2LjIxODc1LCJ5IjoxMDR9LHsieCI6MTI2MS4yMTg3NSwieSI6MTA0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92_flowchart-v2-pointEnd)\"></path><path d=\"M712.125,82L718.763,82C725.401,82,738.677,82,763.781,82C788.885,82,825.818,82,862.75,83.871C899.682,85.742,936.615,89.484,955.081,91.355L973.547,93.226\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-L_ValParty_Validator_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_ValParty_Validator_0\" data-points=\"W3sieCI6NzEyLjEyNSwieSI6ODJ9LHsieCI6NzUxLjk1MzEyNSwieSI6ODJ9LHsieCI6ODYyLjc1LCJ5Ijo4Mn0seyJ4Ijo5NzMuNTQ2ODc1LCJ5Ijo5My4yMjU5OTIxNTYyOTgzNX1d\" data-look=\"classic\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Core_UIS_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(355.9296875, 389)\"><g class=\"label\" data-id=\"L_Vault_UIS_0\" transform=\"translate(-74.2578125, -12)\"><foreignObject width=\"148.515625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>signs for your parties</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(820.05193, 178.41066)\"><g class=\"label\" data-id=\"L_UIS_Validator_0\" transform=\"translate(-74.546875, -24)\"><foreignObject width=\"149.09375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Ledger API (gRPC)<br>Validator API (REST)</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(862.75, 416)\"><g class=\"label\" data-id=\"L_UIS_DAR_0\" transform=\"translate(-85.796875, -12)\"><foreignObject width=\"171.59375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>DA Registry API (REST)</p></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Validator_Net_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_ValParty_Validator_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-Core-0\" data-look=\"classic\" transform=\"translate(144.8359375, 273)\"><rect class=\"basic label-container\" style=\"\" x=\"-111.8359375\" y=\"-27\" width=\"223.671875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-81.8359375, -12)\"><rect></rect><foreignObject width=\"163.671875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Core and policy engine</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-Vault-1\" data-look=\"classic\" transform=\"translate(144.8359375, 389)\"><rect class=\"basic label-container\" style=\"\" x=\"-82\" y=\"-39\" width=\"164\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52, -24)\"><rect></rect><foreignObject width=\"104\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault<br>(HSM or KMS)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-UIS-2\" data-look=\"classic\" transform=\"translate(603.5703125, 331)\"><rect class=\"basic label-container\" style=\"\" x=\"-123.3828125\" y=\"-39\" width=\"246.765625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-93.3828125, -24)\"><rect></rect><foreignObject width=\"186.765625\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Unified Indexer Service v2<br>(Canton indexer)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-Validator-3\" data-look=\"classic\" transform=\"translate(1079.8828125, 104)\"><rect class=\"basic label-container\" style=\"\" x=\"-106.3359375\" y=\"-39\" width=\"212.671875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-76.3359375, -24)\"><rect></rect><foreignObject width=\"152.671875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Canton validator<br>(Splice Validator App)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-ValParty-4\" data-look=\"classic\" transform=\"translate(603.5703125, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.5546875\" y=\"-39\" width=\"217.109375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.5546875, -24)\"><rect></rect><foreignObject width=\"157.109375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Validator service party<br>(validator-held key)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-DAR-5\" data-look=\"classic\" transform=\"translate(1079.8828125, 416)\"><rect class=\"basic label-container\" style=\"\" x=\"-72.234375\" y=\"-27\" width=\"144.46875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-42.234375, -12)\"><rect></rect><foreignObject width=\"84.46875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>DA Registry</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-flowchart-Net-6\" data-look=\"classic\" transform=\"translate(1368.5859375, 104)\"><rect class=\"basic label-container\" style=\"\" x=\"-107.3671875\" y=\"-39\" width=\"214.734375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-77.3671875, -24)\"><rect></rect><foreignObject width=\"154.734375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Canton Network<br>(Global Synchronizer)</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-a8381b6472b7463e024220d1e6d4ef6735c67062858f5c31fcee719bec3d1e92-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1483.953125px;\" viewBox=\"0 0 1483.953125 471\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .error-icon{fill:#a44141;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .error-text{fill:#ddd;stroke:#ddd;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-thickness-normal{stroke-width:1px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-thickness-thick{stroke-width:3.5px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-pattern-solid{stroke-dasharray:0;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .marker.cross{stroke:lightgrey;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 p{margin:0;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .cluster-label text{fill:#F9FFFE;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .cluster-label span{color:#F9FFFE;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .cluster-label span p{background-color:transparent;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .label text,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 span{fill:#ccc;color:#ccc;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node rect,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node circle,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node ellipse,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node polygon,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .rough-node .label text,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node .label text,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .image-shape .label,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .icon-shape .label{text-anchor:middle;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .rough-node .label,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node .label,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .image-shape .label,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .icon-shape .label{text-align:center;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node.clickable{cursor:pointer;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .arrowheadPath{fill:lightgrey;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .cluster text{fill:#F9FFFE;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .cluster span{color:#F9FFFE;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 rect.text{fill:none;stroke-width:0;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .icon-shape,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .icon-shape p,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .icon-shape .label rect,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 .node .neo-node{stroke:#ccc;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node rect,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].cluster rect,#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node polygon{stroke:url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node path{stroke:url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-gradient);stroke-width:1px;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node circle{stroke:url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-Customer\" data-look=\"classic\"><rect style=\"\" x=\"455.1875\" y=\"8\" width=\"756.03125\" height=\"177\"></rect><g class=\"cluster-label\" transform=\"translate(741.4375, 8)\"><foreignObject width=\"183.53125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>You or your node provider</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-Custody\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"205\" width=\"743.953125\" height=\"258\"></rect><g class=\"cluster-label\" transform=\"translate(325.7265625, 205)\"><foreignObject width=\"108.5\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Ripple Custody</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M256.672,273L273.215,273C289.758,273,322.844,273,355.93,273C389.016,273,422.102,273,446.125,275.924C470.148,278.848,485.109,284.696,492.59,287.62L500.07,290.544\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-L_Core_UIS_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Core_UIS_0\" data-points=\"W3sieCI6MjU2LjY3MTg3NSwieSI6MjczfSx7IngiOjM1NS45Mjk2ODc1LCJ5IjoyNzN9LHsieCI6NDU1LjE4NzUsInkiOjI3M30seyJ4Ijo1MDMuNzk1NjYyNzE1NTE3MiwieSI6MjkyfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd)\"></path><path d=\"M226.836,389L248.352,389C269.867,389,312.898,389,350.957,389C389.016,389,422.102,389,446.125,386.076C470.148,383.152,485.109,377.304,492.59,374.38L500.07,371.456\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-L_Vault_UIS_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Vault_UIS_0\" data-points=\"W3sieCI6MjI2LjgzNTkzNzUsInkiOjM4OX0seyJ4IjozNTUuOTI5Njg3NSwieSI6Mzg5fSx7IngiOjQ1NS4xODc1LCJ5IjozODl9LHsieCI6NTAzLjc5NTY2MjcxNTUxNzIsInkiOjM3MH1d\" data-look=\"classic\" marker-end=\"url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd)\"></path><path d=\"M687.439,292L698.191,287C708.944,282,730.448,272,759.667,244.333C788.885,216.667,825.818,171.333,862.087,146.863C898.356,122.392,933.961,118.785,951.764,116.981L969.567,115.177\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-L_UIS_Validator_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_UIS_Validator_0\" data-points=\"W3sieCI6Njg3LjQzODg1ODY5NTY1MjEsInkiOjI5Mn0seyJ4Ijo3NTEuOTUzMTI1LCJ5IjoyNjJ9LHsieCI6ODYyLjc1LCJ5IjoxMjZ9LHsieCI6OTczLjU0Njg3NSwieSI6MTE0Ljc3NDAwNzg0MzcwMTY1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd)\"></path><path d=\"M671.652,370L685.035,377.667C698.419,385.333,725.186,400.667,757.036,408.333C788.885,416,825.818,416,867.767,416C909.716,416,956.682,416,980.165,416L1003.648,416\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-L_UIS_DAR_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_UIS_DAR_0\" data-points=\"W3sieCI6NjcxLjY1MTgzODIzNTI5NDEsInkiOjM3MH0seyJ4Ijo3NTEuOTUzMTI1LCJ5Ijo0MTZ9LHsieCI6ODYyLjc1LCJ5Ijo0MTZ9LHsieCI6MTAwNy42NDg0Mzc1LCJ5Ijo0MTZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd)\"></path><path d=\"M1186.219,104L1190.385,104C1194.552,104,1202.885,104,1211.219,104C1219.552,104,1227.885,104,1235.552,104C1243.219,104,1250.219,104,1253.719,104L1257.219,104\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-L_Validator_Net_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_Validator_Net_0\" data-points=\"W3sieCI6MTE4Ni4yMTg3NSwieSI6MTA0fSx7IngiOjEyMTEuMjE4NzUsInkiOjEwNH0seyJ4IjoxMjM2LjIxODc1LCJ5IjoxMDR9LHsieCI6MTI2MS4yMTg3NSwieSI6MTA0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88_flowchart-v2-pointEnd)\"></path><path d=\"M712.125,82L718.763,82C725.401,82,738.677,82,763.781,82C788.885,82,825.818,82,862.75,83.871C899.682,85.742,936.615,89.484,955.081,91.355L973.547,93.226\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-L_ValParty_Validator_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_ValParty_Validator_0\" data-points=\"W3sieCI6NzEyLjEyNSwieSI6ODJ9LHsieCI6NzUxLjk1MzEyNSwieSI6ODJ9LHsieCI6ODYyLjc1LCJ5Ijo4Mn0seyJ4Ijo5NzMuNTQ2ODc1LCJ5Ijo5My4yMjU5OTIxNTYyOTgzNX1d\" data-look=\"classic\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Core_UIS_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(355.9296875, 389)\"><g class=\"label\" data-id=\"L_Vault_UIS_0\" transform=\"translate(-74.2578125, -12)\"><foreignObject width=\"148.515625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>signs for your parties</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(820.05193, 178.41066)\"><g class=\"label\" data-id=\"L_UIS_Validator_0\" transform=\"translate(-74.546875, -24)\"><foreignObject width=\"149.09375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Ledger API (gRPC)<br>Validator API (REST)</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(862.75, 416)\"><g class=\"label\" data-id=\"L_UIS_DAR_0\" transform=\"translate(-85.796875, -12)\"><foreignObject width=\"171.59375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>DA Registry API (REST)</p></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_Validator_Net_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_ValParty_Validator_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-Core-0\" data-look=\"classic\" transform=\"translate(144.8359375, 273)\"><rect class=\"basic label-container\" style=\"\" x=\"-111.8359375\" y=\"-27\" width=\"223.671875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-81.8359375, -12)\"><rect></rect><foreignObject width=\"163.671875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Core and policy engine</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-Vault-1\" data-look=\"classic\" transform=\"translate(144.8359375, 389)\"><rect class=\"basic label-container\" style=\"\" x=\"-82\" y=\"-39\" width=\"164\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52, -24)\"><rect></rect><foreignObject width=\"104\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault<br>(HSM or KMS)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-UIS-2\" data-look=\"classic\" transform=\"translate(603.5703125, 331)\"><rect class=\"basic label-container\" style=\"\" x=\"-123.3828125\" y=\"-39\" width=\"246.765625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-93.3828125, -24)\"><rect></rect><foreignObject width=\"186.765625\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Unified Indexer Service v2<br>(Canton indexer)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-Validator-3\" data-look=\"classic\" transform=\"translate(1079.8828125, 104)\"><rect class=\"basic label-container\" style=\"\" x=\"-106.3359375\" y=\"-39\" width=\"212.671875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-76.3359375, -24)\"><rect></rect><foreignObject width=\"152.671875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Canton validator<br>(Splice Validator App)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-ValParty-4\" data-look=\"classic\" transform=\"translate(603.5703125, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.5546875\" y=\"-39\" width=\"217.109375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.5546875, -24)\"><rect></rect><foreignObject width=\"157.109375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Validator service party<br>(validator-held key)</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-DAR-5\" data-look=\"classic\" transform=\"translate(1079.8828125, 416)\"><rect class=\"basic label-container\" style=\"\" x=\"-72.234375\" y=\"-27\" width=\"144.46875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-42.234375, -12)\"><rect></rect><foreignObject width=\"84.46875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>DA Registry</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-flowchart-Net-6\" data-look=\"classic\" transform=\"translate(1368.5859375, 104)\"><rect class=\"basic label-container\" style=\"\" x=\"-107.3671875\" y=\"-39\" width=\"214.734375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-77.3671875, -24)\"><rect></rect><foreignObject width=\"154.734375\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Canton Network<br>(Global Synchronizer)</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-53b1880f824599388bb0a405f2c8a7889c080c250c0973876fc1ee5998588b88-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart LR\n    subgraph Custody[\"Ripple Custody\"]\n        Core[\"Core and policy engine\"]\n        Vault[\"Vault<br/>(HSM or KMS)\"]\n        UIS[\"Unified Indexer Service v2<br/>(Canton indexer)\"]\n    end\n    subgraph Customer[\"You or your node provider\"]\n        Validator[\"Canton validator<br/>(Splice Validator App)\"]\n        ValParty[\"Validator service party<br/>(validator-held key)\"]\n    end\n    DAR[\"DA Registry\"]\n    Net[\"Canton Network<br/>(Global Synchronizer)\"]\n\n    Core --> UIS\n    Vault -- \"signs for your parties\" --> UIS\n    UIS -- \"Ledger API (gRPC)<br/>Validator API (REST)\" --> Validator\n    UIS -- \"DA Registry API (REST)\" --> DAR\n    Validator --> Net\n    ValParty --- Validator\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you submit a Canton transaction order:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ","Ripple Custody"," policy engine evaluates the intent and collects approvals, as on every other ledger."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The Canton indexer prepares the transaction on your validator."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The vault decodes the prepared transaction and checks it against the approved intent. For a transfer, it checks the receiver, amount, and instrument. For an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Accept"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Reject"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Withdraw"]},", it checks the exact contract ID. For every operation, it checks the synchronizer ID. If anything doesn't match, the vault refuses to sign."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The vault signs with the account's Ed25519 key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The indexer submits the signed transaction through your validator."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The indexer observes the committed update and marks the transaction as confirmed."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each intent results in one prepared transaction, one vault signature, and one submission."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"deployment-models","__idx":2},"children":["Deployment models"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ","Ripple Custody"," deployment model and the validator model are independent. In every deployment model, you provide the validator."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Deployment"},"children":["Deployment"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Who runs Ripple Custody"},"children":["Who runs ","Ripple Custody"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Who runs the Canton indexer"},"children":["Who runs the Canton indexer"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Validator network access"},"children":["Validator network access"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Hybrid"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple (SaaS) or you"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple, as a dedicated indexer instance connected to your validator"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allow the Ripple indexer IP addresses through your validator firewall."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["On-premises"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You, as part of your Custodian Helm installation"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The indexer connects from inside your network."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["SaaS customers use Canton through the hybrid model only. Ripple runs a dedicated Canton indexer for your validator. ","Ripple Custody"," doesn't offer a shared Canton indexer."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the hybrid model, your indexer instance can reach only your own validator."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the environment requirements, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/accounts-and-assets/blockchains/canton/connect-your-validator#validator-prerequisites"},"children":["Validator prerequisites"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"shared-responsibilities","__idx":3},"children":["Shared responsibilities"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Responsibility"},"children":["Responsibility"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"You or your node provider"},"children":["You or your node provider"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Ripple"},"children":["Ripple"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Operate, secure, and monitor the validator node"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keep the Splice Validator App on the latest release"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Install and update the DARs for the CIP-56 tokens that you hold"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provide Ledger API, Validator API, and DA Registry API endpoints over TLS, with credentials"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Grant the Ledger API user rights that ","Ripple Custody"," needs"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keep a Canton Coin balance on the validator operator party for network fees"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Hold the validator service party key, and collect validator rewards"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Move rewards from the validator service party to a ","Ripple Custody"," account, if you want them in custody"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Allow the Ripple indexer IP addresses through your firewall (hybrid)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provision and operate the Canton indexer (hybrid)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provision and operate the Canton indexer (on-premises)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configure the validator endpoints and credentials in ","Ripple Custody"," (hybrid)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provide them to Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Configure the validator endpoints and credentials in ","Ripple Custody"," (on-premises)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Register the Canton ledger and tickers with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_CreateLedger"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_ValidateTickers"]}," intents"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Generate and protect each account's Ed25519 party key in your vault"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes, through your vault's HSM or KMS"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check every transaction against its approved intent before signing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Apply your policies, approvals, quarantine rules, and audit trail to Canton operations"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Index balances and transaction history"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Migrate parties from another custodian"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes, if applicable: create new ","Ripple Custody"," parties, transfer the balances, and retire the old parties"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"security-model","__idx":4},"children":["Security model"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ripple Custody"," doesn't run validator infrastructure and doesn't hold validator keys."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Your validator hosts your parties but doesn't hold their signing keys. It can't move your ","Ripple Custody"," assets without a signature from your vault."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The validator service party's key stays with the validator, because the Canton Network requires it to sign autonomously for traffic top-ups, reward collection, and pre-approval renewals. This key doesn't control any ","Ripple Custody"," account, and running a validator doesn't put ","Ripple Custody"," assets at risk. It does mean that you or your node provider keep an operational signing responsibility outside ","Ripple Custody","."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A policy-approved ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_CreateLedger"]}," intent sets the validator operator party, the DSO party, and the DA Registry operator once. ","Ripple Custody"," stores these values in its trusted collections and reads them back for every later check, instead of fetching them again from the network."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the BYOV model, account data sits on your validator, which puts data residency under your control."]}]}]},"headings":[{"value":"Architecture and responsibilities","id":"architecture-and-responsibilities","depth":1},{"value":"Architecture","id":"architecture","depth":2},{"value":"Deployment models","id":"deployment-models","depth":2},{"value":"Shared responsibilities","id":"shared-responsibilities","depth":2},{"value":"Security model","id":"security-model","depth":2}],"frontmatter":{"seo":{"title":"Architecture and responsibilities"}},"lastModified":"2026-10-23T14:40:24.137Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/accounts-and-assets/blockchains/canton/architecture-and-responsibilities","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}