{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/deployment/integrate-kms/mpc/overview","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/deployment/integrate-kms/mpc/overview","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/integrate-kms/mpc/overview","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/integrate-kms/mpc/overview","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/integrate-kms/mpc/overview","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/integrate-kms/mpc/overview","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/integrate-kms/mpc/overview","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Multi-party computation (MPC) overview","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":"multi-party-computation-mpc-overview","__idx":0},"children":["Multi-party computation (MPC) overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide provides a conceptual overview of Multi-Party Computation (MPC) integration with ","Ripple Custody",". MPC is a distributed key management approach that eliminates single points of failure by distributing key shares across multiple nodes."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Deployment:"]}," Customer MPC nodes can be deployed in supported cloud environments, including AWS. For detailed instructions, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/aws-deployment"},"children":["MPC deployment on AWS"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-is-multi-party-computation-mpc","__idx":1},"children":["What is multi-party computation (MPC)?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Multi-Party Computation (MPC) is a cryptographic protocol that enables multiple parties to jointly compute a function over their inputs while keeping those inputs private. In ","Ripple Custody",", MPC is used for distributed key management where:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No Single Point of Failure"]},": Private keys are never reconstructed in a single location"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Distributed Key Shares"]},": Each party holds only a share of the private key"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Threshold signatures"]},": A minimum number of parties must collaborate to sign transactions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enhanced security"]},": An attacker must compromise multiple nodes to steal the key shares, and would still need access to Ripple's proprietary algorithm to reconstruct private keys."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-ripple-custody-uses-mpc","__idx":2},"children":["How ","Ripple Custody"," uses MPC"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody"," implements a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["3-of-4 threshold signing scheme"]}," for transaction signing, with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["4-of-4 consensus required for account creation"]},":"]},{"$$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":"Aspect"},"children":["Aspect"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Total Nodes"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["4 nodes (2 Ripple nodes + 2 customer nodes)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signing Threshold"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Any 3 out of 4 nodes can create valid signatures"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account Creation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All 4 nodes must participate (4-of-4 required)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key Generation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["All 4 nodes must participate in Distributed Key Generation (DKG)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Availability"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 node can be offline and transaction signing still works; account creation requires all nodes"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"node-ownership-and-shared-responsibility","__idx":3},"children":["Node ownership and shared responsibility"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important:"]}," The node numbering reflects ownership, not deployment order."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["MPC deployment follows a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["shared responsibility model"]},":"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ripple"]}," deploys and manages Nodes 0 and 1, plus the Relay Server and vault"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customers"]}," deploy and manage Nodes 2 and 3 in their own infrastructure"]}]},{"$$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":"Node"},"children":["Node"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Owner"},"children":["Owner"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Managed By"},"children":["Managed By"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Node 0"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple-hosted MPC node (connected to vault)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Node 1"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple-hosted MPC node"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Node 2"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer-deployed MPC node"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Node 3"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer-deployed MPC node"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Relay Server"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Coordinates P2P communication between nodes"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["vault"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Hosted in Ripple environment, connected to Node 0"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"architecture","__idx":4},"children":["Architecture"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following diagram shows the MPC network topology."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Abbreviations:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DKG"]}," – Distributed Key Generation: The process where all 4 nodes collaborate to generate key shares"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["TSS"]}," – Threshold Signature Scheme: The protocol enabling 3-of-4 nodes to produce valid signatures"]}]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart TB\n    subgraph ripple[\"Ripple Infrastructure\"]\n        vault[\"Vault\"]\n        relay[\"Relay Server<br/>libp2p Coordination\"]\n        subgraph rippleNodes[\"Ripple MPC Nodes\"]\n            node0[\"MPC Node 0<br/>Ripple-Hosted\"]\n            node1[\"MPC Node 1<br/>Ripple-Hosted\"]\n        end\n        vault -->|\"KMS Connect\"| node0\n    end\n\n    subgraph customer[\"Customer Infrastructure\"]\n        subgraph customerNodes[\"Customer MPC Nodes\"]\n            node2[\"MPC Node 2<br/>Customer-Deployed\"]\n            node3[\"MPC Node 3<br/>Customer-Deployed\"]\n        end\n    end\n\n    node2 <-->|\"libp2p P2P\"| relay\n    node3 <-->|\"libp2p P2P\"| relay\n    node0 <-->|\"libp2p P2P\"| relay\n    node1 <-->|\"libp2p P2P\"| relay\n\n    style customer fill:#e8f5e9,stroke:#2e7d32\n    style ripple fill:#e3f2fd,stroke:#1565c0\n    style vault fill:#fff3e0,stroke:#ef6c00\n    style relay fill:#fce4ec,stroke:#c2185b\n","diagramHtml":"<svg id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1201.125px;\" viewBox=\"0 0 1201.125 524\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0{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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .error-icon{fill:#552222;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .error-text{fill:#552222;stroke:#552222;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-thickness-normal{stroke-width:1px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-thickness-thick{stroke-width:3.5px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-pattern-solid{stroke-dasharray:0;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .marker{fill:#333333;stroke:#333333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .marker.cross{stroke:#333333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 p{margin:0;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .cluster-label text{fill:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .cluster-label span{color:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .cluster-label span p{background-color:transparent;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .label text,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 span{fill:#333;color:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node rect,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node circle,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node ellipse,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node polygon,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .rough-node .label text,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node .label text,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .image-shape .label,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .icon-shape .label{text-anchor:middle;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .rough-node .label,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node .label,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .image-shape .label,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .icon-shape .label{text-align:center;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node.clickable{cursor:pointer;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .arrowheadPath{fill:#333333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .flowchart-link{stroke:#333333;fill:none;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .cluster text{fill:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .cluster span{color:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 rect.text{fill:none;stroke-width:0;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .icon-shape,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .icon-shape p,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .icon-shape .label rect,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 .node .neo-node{stroke:#9370DB;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node rect,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].cluster rect,#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-customer\" data-look=\"classic\"><rect style=\"fill:#e8f5e9 !important;stroke:#2e7d32 !important\" x=\"8\" y=\"161\" width=\"564.5625\" height=\"178\"></rect><g class=\"cluster-label\" transform=\"translate(206.25, 161)\"><foreignObject width=\"168.0625\" 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>Customer Infrastructure</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-ripple\" data-look=\"classic\"><rect style=\"fill:#e3f2fd !important;stroke:#1565c0 !important\" x=\"592.5625\" y=\"8\" width=\"600.5625\" height=\"508\"></rect><g class=\"cluster-label\" transform=\"translate(820.8125, 8)\"><foreignObject width=\"144.0625\" 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 Infrastructure</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-customerNodes\" data-look=\"classic\"><rect style=\"\" x=\"28\" y=\"186\" width=\"524.5625\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(210.2578125, 186)\"><foreignObject width=\"160.046875\" 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>Customer MPC Nodes</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-rippleNodes\" data-look=\"classic\"><rect style=\"\" x=\"730.34375\" y=\"186\" width=\"442.78125\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(883.703125, 186)\"><foreignObject width=\"136.0625\" 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 MPC Nodes</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M846.039,87L846.039,93.167C846.039,99.333,846.039,111.667,846.039,124C846.039,136.333,846.039,148.667,846.039,159C846.039,169.333,846.039,177.667,846.039,185.333C846.039,193,846.039,200,846.039,203.5L846.039,207\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-L_vault_node0_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_node0_0\" data-points=\"W3sieCI6ODQ2LjAzOTA2MjUsInkiOjg3fSx7IngiOjg0Ni4wMzkwNjI1LCJ5IjoxMjR9LHsieCI6ODQ2LjAzOTA2MjUsInkiOjE2MX0seyJ4Ijo4NDYuMDM5MDYyNSwieSI6MTg2fSx7IngiOjg0Ni4wMzkwNjI1LCJ5IjoyMTF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointEnd)\"></path><path d=\"M164.141,293L164.141,296.5C164.141,300,164.141,307,164.141,314.667C164.141,322.333,164.141,330.667,245.327,341C326.513,351.333,488.885,363.667,581.334,375.692C673.782,387.718,696.306,399.436,707.568,405.295L718.83,411.154\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-L_node2_relay_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_node2_relay_0\" data-points=\"W3sieCI6MTY0LjE0MDYyNSwieSI6Mjg5fSx7IngiOjE2NC4xNDA2MjUsInkiOjMxNH0seyJ4IjoxNjQuMTQwNjI1LCJ5IjozMzl9LHsieCI6NjUxLjI1NzgxMjUsInkiOjM3Nn0seyJ4Ijo3MjIuMzc4NTk3ODYxODQyMSwieSI6NDEzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointEnd)\"></path><path d=\"M416.422,293L416.422,296.5C416.422,300,416.422,307,416.422,314.667C416.422,322.333,416.422,330.667,471.793,341C527.164,351.333,637.906,363.667,696.869,375.439C755.831,387.211,763.014,398.421,766.606,404.027L770.197,409.632\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-L_node3_relay_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_node3_relay_0\" data-points=\"W3sieCI6NDE2LjQyMTg3NSwieSI6Mjg5fSx7IngiOjQxNi40MjE4NzUsInkiOjMxNH0seyJ4Ijo0MTYuNDIxODc1LCJ5IjozMzl9LHsieCI6NzQ4LjY0ODQzNzUsInkiOjM3Nn0seyJ4Ijo3NzIuMzU1MzY1OTUzOTQ3NCwieSI6NDEzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointEnd)\"></path><path d=\"M846.039,293L846.039,296.5C846.039,300,846.039,307,846.039,314.667C846.039,322.333,846.039,330.667,846.039,341C846.039,351.333,846.039,363.667,842.448,375.439C838.856,387.211,831.673,398.421,828.082,404.027L824.49,409.632\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-L_node0_relay_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_node0_relay_0\" data-points=\"W3sieCI6ODQ2LjAzOTA2MjUsInkiOjI4OX0seyJ4Ijo4NDYuMDM5MDYyNSwieSI6MzE0fSx7IngiOjg0Ni4wMzkwNjI1LCJ5IjozMzl9LHsieCI6ODQ2LjAzOTA2MjUsInkiOjM3Nn0seyJ4Ijo4MjIuMzMyMTM0MDQ2MDUyNiwieSI6NDEzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointEnd)\"></path><path d=\"M1057.43,293L1057.43,296.5C1057.43,300,1057.43,307,1057.43,314.667C1057.43,322.333,1057.43,330.667,1057.43,341C1057.43,351.333,1057.43,363.667,1031.212,377.495C1004.993,391.322,952.557,406.645,926.339,414.306L900.121,421.967\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-L_node1_relay_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_node1_relay_0\" data-points=\"W3sieCI6MTA1Ny40Mjk2ODc1LCJ5IjoyODl9LHsieCI6MTA1Ny40Mjk2ODc1LCJ5IjozMTR9LHsieCI6MTA1Ny40Mjk2ODc1LCJ5IjozMzl9LHsieCI6MTA1Ny40Mjk2ODc1LCJ5IjozNzZ9LHsieCI6ODk2LjI4MTI1LCJ5Ijo0MjMuMDg5MzYzNDkxNjM0NH1d\" data-look=\"classic\" marker-start=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(846.0390625, 124)\"><g class=\"label\" data-id=\"L_vault_node0_0\" transform=\"translate(-49.359375, -12)\"><foreignObject width=\"98.71875\" 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>KMS Connect</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(651.2578125, 376)\"><g class=\"label\" data-id=\"L_node2_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(748.6484375, 376)\"><g class=\"label\" data-id=\"L_node3_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(846.0390625, 376)\"><g class=\"label\" data-id=\"L_node0_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1057.4296875, 376)\"><g class=\"label\" data-id=\"L_node1_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-flowchart-vault-0\" data-look=\"classic\" transform=\"translate(846.0390625, 60)\"><rect class=\"basic label-container\" style=\"fill:#fff3e0 !important;stroke:#ef6c00 !important\" x=\"-47.640625\" y=\"-27\" width=\"95.28125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-17.640625, -12)\"><rect></rect><foreignObject width=\"35.28125\" 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>Vault</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-flowchart-relay-1\" data-look=\"classic\" transform=\"translate(797.34375, 452)\"><rect class=\"basic label-container\" style=\"fill:#fce4ec !important;stroke:#c2185b !important\" x=\"-98.9375\" y=\"-39\" width=\"197.875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-68.9375, -24)\"><rect></rect><foreignObject width=\"137.875\" 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>Relay Server<br>libp2p Coordination</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-flowchart-node0-2\" data-look=\"classic\" transform=\"translate(846.0390625, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.6953125\" y=\"-39\" width=\"161.390625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.6953125, -24)\"><rect></rect><foreignObject width=\"101.390625\" 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>MPC Node 0<br>Ripple-Hosted</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-flowchart-node1-3\" data-look=\"classic\" transform=\"translate(1057.4296875, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.6953125\" y=\"-39\" width=\"161.390625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.6953125, -24)\"><rect></rect><foreignObject width=\"101.390625\" 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>MPC Node 1<br>Ripple-Hosted</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-flowchart-node2-6\" data-look=\"classic\" transform=\"translate(164.140625, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-101.140625\" y=\"-39\" width=\"202.28125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-71.140625, -24)\"><rect></rect><foreignObject width=\"142.28125\" 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>MPC Node 2<br>Customer-Deployed</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-flowchart-node3-7\" data-look=\"classic\" transform=\"translate(416.421875, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-101.140625\" y=\"-39\" width=\"202.28125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-71.140625, -24)\"><rect></rect><foreignObject width=\"142.28125\" 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>MPC Node 3<br>Customer-Deployed</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-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-34a9bfdebf448d131fb18d82c0096399c7ff8778c01ae2a5ff4a57c4362abac0-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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1201.125px;\" viewBox=\"0 0 1201.125 524\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c{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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .error-icon{fill:#a44141;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .error-text{fill:#ddd;stroke:#ddd;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-thickness-normal{stroke-width:1px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-thickness-thick{stroke-width:3.5px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-pattern-solid{stroke-dasharray:0;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-pattern-dashed{stroke-dasharray:3;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edge-pattern-dotted{stroke-dasharray:2;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .marker{fill:lightgrey;stroke:lightgrey;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .marker.cross{stroke:lightgrey;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c p{margin:0;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .cluster-label text{fill:#F9FFFE;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .cluster-label span{color:#F9FFFE;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .cluster-label span p{background-color:transparent;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .label text,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c span{fill:#ccc;color:#ccc;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node rect,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node circle,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node ellipse,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node polygon,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .rough-node .label text,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node .label text,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .image-shape .label,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .icon-shape .label{text-anchor:middle;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .rough-node .label,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node .label,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .image-shape .label,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .icon-shape .label{text-align:center;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node.clickable{cursor:pointer;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .arrowheadPath{fill:lightgrey;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .flowchart-link{stroke:lightgrey;fill:none;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .cluster text{fill:#F9FFFE;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .cluster span{color:#F9FFFE;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c 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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c rect.text{fill:none;stroke-width:0;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .icon-shape,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .icon-shape p,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .icon-shape .label rect,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c .node .neo-node{stroke:#ccc;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node rect,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].cluster rect,#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node polygon{stroke:url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node path{stroke:url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-gradient);stroke-width:1px;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node circle{stroke:url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-customer\" data-look=\"classic\"><rect style=\"fill:#e8f5e9 !important;stroke:#2e7d32 !important\" x=\"8\" y=\"161\" width=\"564.5625\" height=\"178\"></rect><g class=\"cluster-label\" transform=\"translate(206.25, 161)\"><foreignObject width=\"168.0625\" 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>Customer Infrastructure</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-ripple\" data-look=\"classic\"><rect style=\"fill:#e3f2fd !important;stroke:#1565c0 !important\" x=\"592.5625\" y=\"8\" width=\"600.5625\" height=\"508\"></rect><g class=\"cluster-label\" transform=\"translate(820.8125, 8)\"><foreignObject width=\"144.0625\" 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 Infrastructure</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-customerNodes\" data-look=\"classic\"><rect style=\"\" x=\"28\" y=\"186\" width=\"524.5625\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(210.2578125, 186)\"><foreignObject width=\"160.046875\" 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>Customer MPC Nodes</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-rippleNodes\" data-look=\"classic\"><rect style=\"\" x=\"730.34375\" y=\"186\" width=\"442.78125\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(883.703125, 186)\"><foreignObject width=\"136.0625\" 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 MPC Nodes</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M846.039,87L846.039,93.167C846.039,99.333,846.039,111.667,846.039,124C846.039,136.333,846.039,148.667,846.039,159C846.039,169.333,846.039,177.667,846.039,185.333C846.039,193,846.039,200,846.039,203.5L846.039,207\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-L_vault_node0_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_node0_0\" data-points=\"W3sieCI6ODQ2LjAzOTA2MjUsInkiOjg3fSx7IngiOjg0Ni4wMzkwNjI1LCJ5IjoxMjR9LHsieCI6ODQ2LjAzOTA2MjUsInkiOjE2MX0seyJ4Ijo4NDYuMDM5MDYyNSwieSI6MTg2fSx7IngiOjg0Ni4wMzkwNjI1LCJ5IjoyMTF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointEnd)\"></path><path d=\"M164.141,293L164.141,296.5C164.141,300,164.141,307,164.141,314.667C164.141,322.333,164.141,330.667,245.327,341C326.513,351.333,488.885,363.667,581.334,375.692C673.782,387.718,696.306,399.436,707.568,405.295L718.83,411.154\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-L_node2_relay_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_node2_relay_0\" data-points=\"W3sieCI6MTY0LjE0MDYyNSwieSI6Mjg5fSx7IngiOjE2NC4xNDA2MjUsInkiOjMxNH0seyJ4IjoxNjQuMTQwNjI1LCJ5IjozMzl9LHsieCI6NjUxLjI1NzgxMjUsInkiOjM3Nn0seyJ4Ijo3MjIuMzc4NTk3ODYxODQyMSwieSI6NDEzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointEnd)\"></path><path d=\"M416.422,293L416.422,296.5C416.422,300,416.422,307,416.422,314.667C416.422,322.333,416.422,330.667,471.793,341C527.164,351.333,637.906,363.667,696.869,375.439C755.831,387.211,763.014,398.421,766.606,404.027L770.197,409.632\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-L_node3_relay_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_node3_relay_0\" data-points=\"W3sieCI6NDE2LjQyMTg3NSwieSI6Mjg5fSx7IngiOjQxNi40MjE4NzUsInkiOjMxNH0seyJ4Ijo0MTYuNDIxODc1LCJ5IjozMzl9LHsieCI6NzQ4LjY0ODQzNzUsInkiOjM3Nn0seyJ4Ijo3NzIuMzU1MzY1OTUzOTQ3NCwieSI6NDEzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointEnd)\"></path><path d=\"M846.039,293L846.039,296.5C846.039,300,846.039,307,846.039,314.667C846.039,322.333,846.039,330.667,846.039,341C846.039,351.333,846.039,363.667,842.448,375.439C838.856,387.211,831.673,398.421,828.082,404.027L824.49,409.632\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-L_node0_relay_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_node0_relay_0\" data-points=\"W3sieCI6ODQ2LjAzOTA2MjUsInkiOjI4OX0seyJ4Ijo4NDYuMDM5MDYyNSwieSI6MzE0fSx7IngiOjg0Ni4wMzkwNjI1LCJ5IjozMzl9LHsieCI6ODQ2LjAzOTA2MjUsInkiOjM3Nn0seyJ4Ijo4MjIuMzMyMTM0MDQ2MDUyNiwieSI6NDEzfV0=\" data-look=\"classic\" marker-start=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointEnd)\"></path><path d=\"M1057.43,293L1057.43,296.5C1057.43,300,1057.43,307,1057.43,314.667C1057.43,322.333,1057.43,330.667,1057.43,341C1057.43,351.333,1057.43,363.667,1031.212,377.495C1004.993,391.322,952.557,406.645,926.339,414.306L900.121,421.967\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-L_node1_relay_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_node1_relay_0\" data-points=\"W3sieCI6MTA1Ny40Mjk2ODc1LCJ5IjoyODl9LHsieCI6MTA1Ny40Mjk2ODc1LCJ5IjozMTR9LHsieCI6MTA1Ny40Mjk2ODc1LCJ5IjozMzl9LHsieCI6MTA1Ny40Mjk2ODc1LCJ5IjozNzZ9LHsieCI6ODk2LjI4MTI1LCJ5Ijo0MjMuMDg5MzYzNDkxNjM0NH1d\" data-look=\"classic\" marker-start=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\" transform=\"translate(846.0390625, 124)\"><g class=\"label\" data-id=\"L_vault_node0_0\" transform=\"translate(-49.359375, -12)\"><foreignObject width=\"98.71875\" 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>KMS Connect</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(651.2578125, 376)\"><g class=\"label\" data-id=\"L_node2_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(748.6484375, 376)\"><g class=\"label\" data-id=\"L_node3_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(846.0390625, 376)\"><g class=\"label\" data-id=\"L_node0_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1057.4296875, 376)\"><g class=\"label\" data-id=\"L_node1_relay_0\" transform=\"translate(-38.6953125, -12)\"><foreignObject width=\"77.390625\" 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>libp2p P2P</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-flowchart-vault-0\" data-look=\"classic\" transform=\"translate(846.0390625, 60)\"><rect class=\"basic label-container\" style=\"fill:#fff3e0 !important;stroke:#ef6c00 !important\" x=\"-47.640625\" y=\"-27\" width=\"95.28125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-17.640625, -12)\"><rect></rect><foreignObject width=\"35.28125\" 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>Vault</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-flowchart-relay-1\" data-look=\"classic\" transform=\"translate(797.34375, 452)\"><rect class=\"basic label-container\" style=\"fill:#fce4ec !important;stroke:#c2185b !important\" x=\"-98.9375\" y=\"-39\" width=\"197.875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-68.9375, -24)\"><rect></rect><foreignObject width=\"137.875\" 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>Relay Server<br>libp2p Coordination</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-flowchart-node0-2\" data-look=\"classic\" transform=\"translate(846.0390625, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.6953125\" y=\"-39\" width=\"161.390625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.6953125, -24)\"><rect></rect><foreignObject width=\"101.390625\" 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>MPC Node 0<br>Ripple-Hosted</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-flowchart-node1-3\" data-look=\"classic\" transform=\"translate(1057.4296875, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.6953125\" y=\"-39\" width=\"161.390625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.6953125, -24)\"><rect></rect><foreignObject width=\"101.390625\" 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>MPC Node 1<br>Ripple-Hosted</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-flowchart-node2-6\" data-look=\"classic\" transform=\"translate(164.140625, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-101.140625\" y=\"-39\" width=\"202.28125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-71.140625, -24)\"><rect></rect><foreignObject width=\"142.28125\" 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>MPC Node 2<br>Customer-Deployed</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-flowchart-node3-7\" data-look=\"classic\" transform=\"translate(416.421875, 250)\"><rect class=\"basic label-container\" style=\"\" x=\"-101.140625\" y=\"-39\" width=\"202.28125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-71.140625, -24)\"><rect></rect><foreignObject width=\"142.28125\" 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>MPC Node 3<br>Customer-Deployed</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-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-2e6229dc31192da5944338881a1908e1407e38e911d1e1d7eeec9a5bd4f4c37c-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 TB\n    subgraph ripple[\"Ripple Infrastructure\"]\n        vault[\"Vault\"]\n        relay[\"Relay Server<br/>libp2p Coordination\"]\n        subgraph rippleNodes[\"Ripple MPC Nodes\"]\n            node0[\"MPC Node 0<br/>Ripple-Hosted\"]\n            node1[\"MPC Node 1<br/>Ripple-Hosted\"]\n        end\n        vault -->|\"KMS Connect\"| node0\n    end\n\n    subgraph customer[\"Customer Infrastructure\"]\n        subgraph customerNodes[\"Customer MPC Nodes\"]\n            node2[\"MPC Node 2<br/>Customer-Deployed\"]\n            node3[\"MPC Node 3<br/>Customer-Deployed\"]\n        end\n    end\n\n    node2 <-->|\"libp2p P2P\"| relay\n    node3 <-->|\"libp2p P2P\"| relay\n    node0 <-->|\"libp2p P2P\"| relay\n    node1 <-->|\"libp2p P2P\"| relay\n\n    style customer fill:#e8f5e9,stroke:#2e7d32\n    style ripple fill:#e3f2fd,stroke:#1565c0\n    style vault fill:#fff3e0,stroke:#ef6c00\n    style relay fill:#fce4ec,stroke:#c2185b\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"key-management-flow","__idx":5},"children":["Key management flow"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n    participant V as vault (Ripple)\n    participant N0 as Node 0 (Ripple)\n    participant N1 as Node 1 (Ripple)\n    participant R as Relay\n    participant N2 as Node 2 (Customer)\n    participant N3 as Node 3 (Customer)\n\n    Note over V,N3: Key Generation (DKG) - All 4 nodes required\n    V->>N0: Initiate DKG\n    N0->>R: Coordinate with peers\n    R->>N1: DKG protocol\n    R->>N2: DKG protocol\n    R->>N3: DKG protocol\n    Note over N0,N3: Each node generates and stores encrypted key share\n\n    Note over V,N3: Signing (TSS) - Any 3 nodes required\n    V->>N0: Sign transaction request\n    N0->>R: Request signatures\n    R->>N1: TSS protocol\n    R->>N2: TSS protocol\n    Note over N0,N3: 3 nodes collaborate to produce signature\n    N0->>V: Return signed transaction\n","diagramHtml":"<svg id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1358px;\" viewBox=\"-50 -10 1358 821\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"1102\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N3\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1180\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1180\" dy=\"0\">Node 3 (Customer)</tspan></text></g><g><rect x=\"852\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N2\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"930\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"930\" dy=\"0\">Node 2 (Customer)</tspan></text></g><g><rect x=\"652\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"727\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"727\" dy=\"0\">Relay</tspan></text></g><g><rect x=\"452\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N1\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"527\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"527\" dy=\"0\">Node 1 (Ripple)</tspan></text></g><g><rect x=\"252\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N0\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"327\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"327\" dy=\"0\">Node 0 (Ripple)</tspan></text></g><g><rect x=\"0\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">vault (Ripple)</tspan></text></g><g><line id=\"actor5\" x1=\"1180\" y1=\"65\" x2=\"1180\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N3\" data-et=\"life-line\" data-id=\"N3\"></line><g id=\"root-5\" data-et=\"participant\" data-type=\"participant\" data-id=\"N3\"><rect x=\"1102\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N3\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1180\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1180\" dy=\"0\">Node 3 (Customer)</tspan></text></g></g><g><line id=\"actor4\" x1=\"930\" y1=\"65\" x2=\"930\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N2\" data-et=\"life-line\" data-id=\"N2\"></line><g id=\"root-4\" data-et=\"participant\" data-type=\"participant\" data-id=\"N2\"><rect x=\"852\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N2\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"930\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"930\" dy=\"0\">Node 2 (Customer)</tspan></text></g></g><g><line id=\"actor3\" x1=\"727\" y1=\"65\" x2=\"727\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"R\" data-et=\"life-line\" data-id=\"R\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"R\"><rect x=\"652\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"727\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"727\" dy=\"0\">Relay</tspan></text></g></g><g><line id=\"actor2\" x1=\"527\" y1=\"65\" x2=\"527\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N1\" data-et=\"life-line\" data-id=\"N1\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"N1\"><rect x=\"452\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N1\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"527\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"527\" dy=\"0\">Node 1 (Ripple)</tspan></text></g></g><g><line id=\"actor1\" x1=\"327\" y1=\"65\" x2=\"327\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N0\" data-et=\"life-line\" data-id=\"N0\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"N0\"><rect x=\"252\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N0\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"327\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"327\" dy=\"0\">Node 0 (Ripple)</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"V\" data-et=\"life-line\" data-id=\"V\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"V\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">vault (Ripple)</tspan></text></g></g><style>#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2{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-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .error-icon{fill:#552222;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .error-text{fill:#552222;stroke:#552222;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-thickness-normal{stroke-width:1px;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-thickness-thick{stroke-width:3.5px;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-pattern-solid{stroke-dasharray:0;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .marker{fill:#333333;stroke:#333333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .marker.cross{stroke:#333333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 p{margin:0;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .actor-line{stroke:#9370DB;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .sequenceNumber{fill:white;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .messageText{fill:#333;stroke:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .labelText,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .loopText,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .sectionTitle,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .noteText,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .actorPopupMenu{position:absolute;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .actor-man circle,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 line{fill:#ECECFF;stroke-width:2px;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 .node .neo-node{stroke:#9370DB;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node rect,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].cluster rect,#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"note\" data-id=\"i0\"><rect x=\"50\" y=\"75\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1155\" height=\"38\" class=\"note\"></rect><text x=\"628\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"628\">Key Generation (DKG) - All 4 nodes required</tspan></text></g><g data-et=\"note\" data-id=\"i6\"><rect x=\"302\" y=\"351\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"903\" height=\"38\" class=\"note\"></rect><text x=\"754\" y=\"356\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"754\">Each node generates and stores encrypted key share</tspan></text></g><g data-et=\"note\" data-id=\"i7\"><rect x=\"50\" y=\"399\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1155\" height=\"38\" class=\"note\"></rect><text x=\"628\" y=\"404\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"628\">Signing (TSS) - Any 3 nodes required</tspan></text></g><g data-et=\"note\" data-id=\"i12\"><rect x=\"302\" y=\"631\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"903\" height=\"38\" class=\"note\"></rect><text x=\"754\" y=\"636\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"754\">3 nodes collaborate to produce signature</tspan></text></g><text x=\"200\" y=\"128\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Initiate DKG</text><line x1=\"76\" y1=\"157\" x2=\"323\" y2=\"157\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"V\" data-to=\"N0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"526\" y=\"172\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Coordinate with peers</text><line x1=\"328\" y1=\"203\" x2=\"723\" y2=\"203\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"N0\" data-to=\"R\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"629\" y=\"218\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DKG protocol</text><line x1=\"726\" y1=\"249\" x2=\"531\" y2=\"249\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"R\" data-to=\"N1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"827\" y=\"264\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DKG protocol</text><line x1=\"728\" y1=\"295\" x2=\"926\" y2=\"295\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"R\" data-to=\"N2\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"952\" y=\"310\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DKG protocol</text><line x1=\"728\" y1=\"341\" x2=\"1176\" y2=\"341\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"R\" data-to=\"N3\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"200\" y=\"452\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Sign transaction request</text><line x1=\"76\" y1=\"483\" x2=\"323\" y2=\"483\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"V\" data-to=\"N0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"526\" y=\"498\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Request signatures</text><line x1=\"328\" y1=\"529\" x2=\"723\" y2=\"529\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"N0\" data-to=\"R\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"629\" y=\"544\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">TSS protocol</text><line x1=\"726\" y1=\"575\" x2=\"531\" y2=\"575\" class=\"messageLine0\" data-et=\"message\" data-id=\"i10\" data-from=\"R\" data-to=\"N1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"827\" y=\"590\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">TSS protocol</text><line x1=\"728\" y1=\"621\" x2=\"926\" y2=\"621\" class=\"messageLine0\" data-et=\"message\" data-id=\"i11\" data-from=\"R\" data-to=\"N2\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line><text x=\"203\" y=\"684\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return signed transaction</text><line x1=\"326\" y1=\"715\" x2=\"79\" y2=\"715\" class=\"messageLine0\" data-et=\"message\" data-id=\"i13\" data-from=\"N0\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-2ca4199555193f4fd426664fa6f0824fb2225b045f8ca6addf074064d87119f2-arrowhead)\" style=\"fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 1358px;\" viewBox=\"-50 -10 1358 821\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"1102\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N3\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"1180\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1180\" dy=\"0\">Node 3 (Customer)</tspan></text></g><g><rect x=\"852\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N2\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"930\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"930\" dy=\"0\">Node 2 (Customer)</tspan></text></g><g><rect x=\"652\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"727\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"727\" dy=\"0\">Relay</tspan></text></g><g><rect x=\"452\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N1\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"527\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"527\" dy=\"0\">Node 1 (Ripple)</tspan></text></g><g><rect x=\"252\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N0\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"327\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"327\" dy=\"0\">Node 0 (Ripple)</tspan></text></g><g><rect x=\"0\" y=\"735\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"767.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">vault (Ripple)</tspan></text></g><g><line id=\"actor5\" x1=\"1180\" y1=\"65\" x2=\"1180\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N3\" data-et=\"life-line\" data-id=\"N3\"></line><g id=\"root-5\" data-et=\"participant\" data-type=\"participant\" data-id=\"N3\"><rect x=\"1102\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N3\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"1180\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"1180\" dy=\"0\">Node 3 (Customer)</tspan></text></g></g><g><line id=\"actor4\" x1=\"930\" y1=\"65\" x2=\"930\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N2\" data-et=\"life-line\" data-id=\"N2\"></line><g id=\"root-4\" data-et=\"participant\" data-type=\"participant\" data-id=\"N2\"><rect x=\"852\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"156\" height=\"65\" name=\"N2\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"930\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"930\" dy=\"0\">Node 2 (Customer)</tspan></text></g></g><g><line id=\"actor3\" x1=\"727\" y1=\"65\" x2=\"727\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"R\" data-et=\"life-line\" data-id=\"R\"></line><g id=\"root-3\" data-et=\"participant\" data-type=\"participant\" data-id=\"R\"><rect x=\"652\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"R\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"727\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"727\" dy=\"0\">Relay</tspan></text></g></g><g><line id=\"actor2\" x1=\"527\" y1=\"65\" x2=\"527\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N1\" data-et=\"life-line\" data-id=\"N1\"></line><g id=\"root-2\" data-et=\"participant\" data-type=\"participant\" data-id=\"N1\"><rect x=\"452\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N1\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"527\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"527\" dy=\"0\">Node 1 (Ripple)</tspan></text></g></g><g><line id=\"actor1\" x1=\"327\" y1=\"65\" x2=\"327\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"N0\" data-et=\"life-line\" data-id=\"N0\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"N0\"><rect x=\"252\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"N0\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"327\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"327\" dy=\"0\">Node 0 (Ripple)</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"735\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"V\" data-et=\"life-line\" data-id=\"V\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"V\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"V\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">vault (Ripple)</tspan></text></g></g><style>#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9{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-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .error-icon{fill:#a44141;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .error-text{fill:#ddd;stroke:#ddd;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-thickness-normal{stroke-width:1px;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-thickness-thick{stroke-width:3.5px;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-pattern-solid{stroke-dasharray:0;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .marker.cross{stroke:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 p{margin:0;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .actor-line{stroke:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .sequenceNumber{fill:black;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .messageText{fill:lightgrey;stroke:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .labelText,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .loopText,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .sectionTitle,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .noteText,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .actorPopupMenu{position:absolute;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .actor-man circle,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 line{fill:#1f2020;stroke-width:2px;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 .node .neo-node{stroke:#ccc;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node rect,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].cluster rect,#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node polygon{stroke:url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node path{stroke:url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-gradient);stroke-width:1px;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node circle{stroke:url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"note\" data-id=\"i0\"><rect x=\"50\" y=\"75\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1155\" height=\"38\" class=\"note\"></rect><text x=\"628\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"628\">Key Generation (DKG) - All 4 nodes required</tspan></text></g><g data-et=\"note\" data-id=\"i6\"><rect x=\"302\" y=\"351\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"903\" height=\"38\" class=\"note\"></rect><text x=\"754\" y=\"356\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"754\">Each node generates and stores encrypted key share</tspan></text></g><g data-et=\"note\" data-id=\"i7\"><rect x=\"50\" y=\"399\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"1155\" height=\"38\" class=\"note\"></rect><text x=\"628\" y=\"404\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"628\">Signing (TSS) - Any 3 nodes required</tspan></text></g><g data-et=\"note\" data-id=\"i12\"><rect x=\"302\" y=\"631\" fill=\"#EDF2AE\" stroke=\"#666\" width=\"903\" height=\"38\" class=\"note\"></rect><text x=\"754\" y=\"636\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"noteText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"754\">3 nodes collaborate to produce signature</tspan></text></g><text x=\"200\" y=\"128\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Initiate DKG</text><line x1=\"76\" y1=\"157\" x2=\"323\" y2=\"157\" class=\"messageLine0\" data-et=\"message\" data-id=\"i1\" data-from=\"V\" data-to=\"N0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"526\" y=\"172\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Coordinate with peers</text><line x1=\"328\" y1=\"203\" x2=\"723\" y2=\"203\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"N0\" data-to=\"R\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"629\" y=\"218\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DKG protocol</text><line x1=\"726\" y1=\"249\" x2=\"531\" y2=\"249\" class=\"messageLine0\" data-et=\"message\" data-id=\"i3\" data-from=\"R\" data-to=\"N1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"827\" y=\"264\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DKG protocol</text><line x1=\"728\" y1=\"295\" x2=\"926\" y2=\"295\" class=\"messageLine0\" data-et=\"message\" data-id=\"i4\" data-from=\"R\" data-to=\"N2\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"952\" y=\"310\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DKG protocol</text><line x1=\"728\" y1=\"341\" x2=\"1176\" y2=\"341\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"R\" data-to=\"N3\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"200\" y=\"452\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Sign transaction request</text><line x1=\"76\" y1=\"483\" x2=\"323\" y2=\"483\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"V\" data-to=\"N0\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"526\" y=\"498\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Request signatures</text><line x1=\"328\" y1=\"529\" x2=\"723\" y2=\"529\" class=\"messageLine0\" data-et=\"message\" data-id=\"i9\" data-from=\"N0\" data-to=\"R\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"629\" y=\"544\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">TSS protocol</text><line x1=\"726\" y1=\"575\" x2=\"531\" y2=\"575\" class=\"messageLine0\" data-et=\"message\" data-id=\"i10\" data-from=\"R\" data-to=\"N1\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"827\" y=\"590\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">TSS protocol</text><line x1=\"728\" y1=\"621\" x2=\"926\" y2=\"621\" class=\"messageLine0\" data-et=\"message\" data-id=\"i11\" data-from=\"R\" data-to=\"N2\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line><text x=\"203\" y=\"684\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Return signed transaction</text><line x1=\"326\" y1=\"715\" x2=\"79\" y2=\"715\" class=\"messageLine0\" data-et=\"message\" data-id=\"i13\" data-from=\"N0\" data-to=\"V\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-28f9c01f4ae26f47467fee6d163890085767d4e887fb304f26f43636d210a9f9-arrowhead)\" style=\"fill: none;\"></line></svg>"},"children":["sequenceDiagram\n    participant V as vault (Ripple)\n    participant N0 as Node 0 (Ripple)\n    participant N1 as Node 1 (Ripple)\n    participant R as Relay\n    participant N2 as Node 2 (Customer)\n    participant N3 as Node 3 (Customer)\n\n    Note over V,N3: Key Generation (DKG) - All 4 nodes required\n    V->>N0: Initiate DKG\n    N0->>R: Coordinate with peers\n    R->>N1: DKG protocol\n    R->>N2: DKG protocol\n    R->>N3: DKG protocol\n    Note over N0,N3: Each node generates and stores encrypted key share\n\n    Note over V,N3: Signing (TSS) - Any 3 nodes required\n    V->>N0: Sign transaction request\n    N0->>R: Request signatures\n    R->>N1: TSS protocol\n    R->>N2: TSS protocol\n    Note over N0,N3: 3 nodes collaborate to produce signature\n    N0->>V: Return signed transaction\n"]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"key-encryption-keys-kek","__idx":6},"children":["Key encryption keys (KEK)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each MPC node requires a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key Encryption Key (KEK)"]}," to encrypt its key share at rest. The KEK is an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AES symmetric key"]}," stored securely that never leaves the node's secure environment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When deploying customer nodes using the MPC Deployer tool:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["KEK is automatically generated during key generation (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--keygen"]}," mode)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["KEK is stored in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AWS Secrets Manager"]}," for AWS deployments or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Azure Key Vault"]}," for Azure deployments"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["KEK is a 32-character hexadecimal string (256-bit AES key)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Key shares are encrypted with the KEK before storage"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"communication-keys-comkey","__idx":7},"children":["Communication keys (ComKey)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each MPC node uses a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Communication Key"]}," for secure node-to-node communication:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"node-identification-key","__idx":8},"children":["Node identification key"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Type"]},": Asymmetric key (ECDSA)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Purpose"]},": Each node signs its payload with its private key"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Verification"]},": Other nodes verify payloads using known public keys (Peer IDs)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Peer ID (public key) for each customer node is generated during the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--keygen"]}," phase and must be shared with Ripple to configure the cluster."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"backup-and-restoration","__idx":9},"children":["Backup and restoration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["MPC deployments include encrypted backup capabilities using verifiable encryption:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"backup-encryption-keys","__idx":10},"children":["Backup encryption keys"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Each node can generate encrypted backups of its key shares"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Backups are encrypted using a separate ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Backup Encryption Key"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Backups include zero-knowledge proofs for verification"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"backup-procedures","__idx":11},"children":["Backup procedures"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Backup creation"]},": Initiated through the ","Ripple Custody"," API via the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v0_CreateBackup"]}," intent"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Backup storage"]},": Encrypted backup files are stored securely"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Verification"]},": The backup can be verified using zero-knowledge proofs without decryption"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Restoration"]},": Requires the backup encryption key and coordination with Ripple"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For detailed backup procedures, including key generation scripts, backup verification, and exit strategy information, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/backups"},"children":["MPC backups"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"comparison-mpc-vs-hsm","__idx":12},"children":["Comparison: MPC vs HSM"]},{"$$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":"Feature"},"children":["Feature"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"MPC"},"children":["MPC"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Traditional HSM"},"children":["Traditional HSM"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key Storage"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Distributed shares across 4 nodes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Centralized in HSM appliance"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Single Point of Failure"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes (HSM itself)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Threshold Signing"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes (3-of-4)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account Creation Threshold"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["4-of-4 (all nodes required)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Deployment"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2 Ripple + 2 Customer nodes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1-2 HSM appliances"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signing Availability"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["High (1 node can fail)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Medium (depends on HA config)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Account Creation Availability"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Requires all 4 nodes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["N/A"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Geographic Distribution"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Nodes in different regions / Availability Zones"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Limited by HSM location"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Regulatory"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Distributed custody model"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Traditional custody model"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Backup"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verifiable encrypted backups"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HSM-specific backup procedures"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"customer-nodes-deployment","__idx":13},"children":["Customer nodes deployment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Customer MPC nodes (Node 2 and Node 3) are deployed using the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MPC Deployer"]}," tool:"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The MPC Deployer is a Docker-based tool that automates the deployment of customer MPC nodes (Node 2 and Node 3) to a specific cloud provider."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"deployment-process","__idx":14},"children":["Deployment process"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Customer node deployment is a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["two-step process"]},":"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key material generation"]},": Generate cryptographic keys for your nodes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Node deployment"]},": Deploy the infrastructure and MPC node software."]}]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart TB\n    subgraph cloud[\"Customer Cloud Environment\"]\n        subgraph network[\"Private Network\"]\n            subgraph segment1[\"Private Segment 1\"]\n                node2[\"MPC Node 2\"]\n            end\n            subgraph segment2[\"Private Segment 2\"]\n                node3[\"MPC Node 3\"]\n            end\n        end\n        secrets[\"Cloud Secret Store<br/>Keys & Config\"]\n        logs[\"Cloud Logs\"]\n    end\n\n    node2 --> secrets\n    node3 --> secrets\n    node2 --> logs\n    node3 --> logs\n\n    style cloud fill:#fff3e0,stroke:#ef6c00\n    style network fill:#e3f2fd,stroke:#1565c0\n    style node2 fill:#e8f5e9,stroke:#2e7d32\n    style node3 fill:#e8f5e9,stroke:#2e7d32\n","diagramHtml":"<svg id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 662.78125px;\" viewBox=\"0 0 662.78125 373\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441{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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .error-icon{fill:#552222;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .error-text{fill:#552222;stroke:#552222;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-thickness-normal{stroke-width:1px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-thickness-thick{stroke-width:3.5px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-pattern-solid{stroke-dasharray:0;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .marker{fill:#333333;stroke:#333333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .marker.cross{stroke:#333333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 p{margin:0;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .cluster-label text{fill:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .cluster-label span{color:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .cluster-label span p{background-color:transparent;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .label text,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 span{fill:#333;color:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node rect,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node circle,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node ellipse,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node polygon,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .rough-node .label text,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node .label text,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .image-shape .label,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .icon-shape .label{text-anchor:middle;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .rough-node .label,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node .label,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .image-shape .label,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .icon-shape .label{text-align:center;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node.clickable{cursor:pointer;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .arrowheadPath{fill:#333333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .flowchart-link{stroke:#333333;fill:none;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .cluster text{fill:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .cluster span{color:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 rect.text{fill:none;stroke-width:0;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .icon-shape,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .icon-shape p,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .icon-shape .label rect,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 .node .neo-node{stroke:#9370DB;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node rect,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].cluster rect,#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_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><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-cloud\" data-look=\"classic\"><rect style=\"fill:#fff3e0 !important;stroke:#ef6c00 !important\" x=\"8\" y=\"8\" width=\"646.78125\" height=\"357\"></rect><g class=\"cluster-label\" transform=\"translate(226.453125, 8)\"><foreignObject width=\"209.875\" 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>Customer Cloud Environment</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-network\" data-look=\"classic\"><rect style=\"fill:#e3f2fd !important;stroke:#1565c0 !important\" x=\"45.5\" y=\"28\" width=\"301.59375\" height=\"317\"></rect><g class=\"cluster-label\" transform=\"translate(139.8359375, 28)\"><foreignObject width=\"112.921875\" 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>Private Network</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-segment2\" data-look=\"classic\"><rect style=\"\" x=\"83\" y=\"201\" width=\"226.59375\" height=\"124\"></rect><g class=\"cluster-label\" transform=\"translate(130.484375, 201)\"><foreignObject width=\"131.625\" 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>Private Segment 2</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-segment1\" data-look=\"classic\"><rect style=\"\" x=\"83\" y=\"48\" width=\"226.59375\" height=\"133\"></rect><g class=\"cluster-label\" transform=\"translate(130.484375, 48)\"><foreignObject width=\"131.625\" 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>Private Segment 1</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M272.094,105.62L278.344,104.516C284.594,103.413,297.094,101.207,309.594,100.103C322.094,99,334.594,99,347.094,99C359.594,99,372.094,99,383.934,99.828C395.775,100.655,406.956,102.311,412.546,103.138L418.137,103.966\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-L_node2_secrets_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_node2_secrets_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoxMDUuNjE5Nzc2NTgyNTQwMzR9LHsieCI6MzA5LjU5Mzc1LCJ5Ijo5OX0seyJ4IjozNDcuMDkzNzUsInkiOjk5fSx7IngiOjM4NC41OTM3NSwieSI6OTl9LHsieCI6NDIyLjA5Mzc1LCJ5IjoxMDQuNTUxNzAwMjA4MTg4NzZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_flowchart-v2-pointEnd)\"></path><path d=\"M272.094,255.641L278.344,255.034C284.594,254.427,297.094,253.214,309.594,240.773C322.094,228.333,334.594,204.667,347.094,192.833C359.594,181,372.094,181,386.09,177.445C400.087,173.889,415.58,166.779,423.327,163.224L431.074,159.668\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-L_node3_secrets_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_node3_secrets_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoyNTUuNjQwODc3MTIwMzk3Mn0seyJ4IjozMDkuNTkzNzUsInkiOjI1Mn0seyJ4IjozNDcuMDkzNzUsInkiOjE4MX0seyJ4IjozODQuNTkzNzUsInkiOjE4MX0seyJ4Ijo0MzQuNzA5MTczMzg3MDk2NzcsInkiOjE1OH1d\" data-look=\"classic\" marker-end=\"url(#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_flowchart-v2-pointEnd)\"></path><path d=\"M272.094,133.049L278.344,134.208C284.594,135.366,297.094,137.683,309.594,149.008C322.094,160.333,334.594,180.667,347.094,190.833C359.594,201,372.094,201,390.448,206.555C408.803,212.111,433.012,223.221,445.116,228.776L457.221,234.332\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-L_node2_logs_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_node2_logs_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoxMzMuMDQ5MjM0NTg4MzMyNjR9LHsieCI6MzA5LjU5Mzc1LCJ5IjoxNDB9LHsieCI6MzQ3LjA5Mzc1LCJ5IjoyMDF9LHsieCI6Mzg0LjU5Mzc1LCJ5IjoyMDF9LHsieCI6NDYwLjg1NjM1MDgwNjQ1MTYsInkiOjIzNn1d\" data-look=\"classic\" marker-end=\"url(#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_flowchart-v2-pointEnd)\"></path><path d=\"M272.094,277.049L278.344,278.208C284.594,279.366,297.094,281.683,309.594,282.842C322.094,284,334.594,284,347.094,284C359.594,284,372.094,284,388.455,282.428C404.815,280.857,425.037,277.713,435.148,276.142L445.258,274.57\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-L_node3_logs_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_node3_logs_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoyNzcuMDQ5MjM0NTg4MzMyNjR9LHsieCI6MzA5LjU5Mzc1LCJ5IjoyODR9LHsieCI6MzQ3LjA5Mzc1LCJ5IjoyODR9LHsieCI6Mzg0LjU5Mzc1LCJ5IjoyODR9LHsieCI6NDQ5LjIxMDkzNzUsInkiOjI3My45NTU0MTI5MDc3MDI5Nn1d\" data-look=\"classic\" marker-end=\"url(#diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_node2_secrets_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_node3_secrets_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_node2_logs_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_node3_logs_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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-flowchart-node3-1\" data-look=\"classic\" transform=\"translate(196.296875, 263)\"><rect class=\"basic label-container\" style=\"fill:#e8f5e9 !important;stroke:#2e7d32 !important\" x=\"-75.796875\" y=\"-27\" width=\"151.59375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-45.796875, -12)\"><rect></rect><foreignObject width=\"91.59375\" 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>MPC Node 3</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-flowchart-node2-0\" data-look=\"classic\" transform=\"translate(196.296875, 119)\"><rect class=\"basic label-container\" style=\"fill:#e8f5e9 !important;stroke:#2e7d32 !important\" x=\"-75.796875\" y=\"-27\" width=\"151.59375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-45.796875, -12)\"><rect></rect><foreignObject width=\"91.59375\" 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>MPC Node 2</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-flowchart-secrets-2\" data-look=\"classic\" transform=\"translate(519.6875, 119)\"><rect class=\"basic label-container\" style=\"\" x=\"-97.59375\" y=\"-39\" width=\"195.1875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-67.59375, -24)\"><rect></rect><foreignObject width=\"135.1875\" 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>Cloud Secret Store<br>Keys &amp; Config</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-flowchart-logs-3\" data-look=\"classic\" transform=\"translate(519.6875, 263)\"><rect class=\"basic label-container\" style=\"\" x=\"-70.4765625\" y=\"-27\" width=\"140.953125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-40.4765625, -12)\"><rect></rect><foreignObject width=\"80.953125\" 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>Cloud Logs</p></span></div></foreignObject></g></g></g></g></g></g></g><defs><filter id=\"diagram-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-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-e052afa03fd18c992330fecf7be43f28ef808b30bfc1b4528a68e519574b5441-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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 662.78125px;\" viewBox=\"0 0 662.78125 373\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0{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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .error-icon{fill:#a44141;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .error-text{fill:#ddd;stroke:#ddd;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-thickness-normal{stroke-width:1px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-thickness-thick{stroke-width:3.5px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-pattern-solid{stroke-dasharray:0;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .marker.cross{stroke:lightgrey;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 p{margin:0;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .cluster-label text{fill:#F9FFFE;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .cluster-label span{color:#F9FFFE;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .cluster-label span p{background-color:transparent;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .label text,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 span{fill:#ccc;color:#ccc;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node rect,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node circle,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node ellipse,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node polygon,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .rough-node .label text,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node .label text,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .image-shape .label,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .icon-shape .label{text-anchor:middle;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .rough-node .label,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node .label,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .image-shape .label,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .icon-shape .label{text-align:center;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node.clickable{cursor:pointer;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .arrowheadPath{fill:lightgrey;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .cluster text{fill:#F9FFFE;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .cluster span{color:#F9FFFE;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 rect.text{fill:none;stroke-width:0;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .icon-shape,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .icon-shape p,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .icon-shape .label rect,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 .node .neo-node{stroke:#ccc;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node rect,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].cluster rect,#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node polygon{stroke:url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node path{stroke:url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-gradient);stroke-width:1px;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node circle{stroke:url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_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><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-cloud\" data-look=\"classic\"><rect style=\"fill:#fff3e0 !important;stroke:#ef6c00 !important\" x=\"8\" y=\"8\" width=\"646.78125\" height=\"357\"></rect><g class=\"cluster-label\" transform=\"translate(226.453125, 8)\"><foreignObject width=\"209.875\" 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>Customer Cloud Environment</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-network\" data-look=\"classic\"><rect style=\"fill:#e3f2fd !important;stroke:#1565c0 !important\" x=\"45.5\" y=\"28\" width=\"301.59375\" height=\"317\"></rect><g class=\"cluster-label\" transform=\"translate(139.8359375, 28)\"><foreignObject width=\"112.921875\" 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>Private Network</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-segment2\" data-look=\"classic\"><rect style=\"\" x=\"83\" y=\"201\" width=\"226.59375\" height=\"124\"></rect><g class=\"cluster-label\" transform=\"translate(130.484375, 201)\"><foreignObject width=\"131.625\" 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>Private Segment 2</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-segment1\" data-look=\"classic\"><rect style=\"\" x=\"83\" y=\"48\" width=\"226.59375\" height=\"133\"></rect><g class=\"cluster-label\" transform=\"translate(130.484375, 48)\"><foreignObject width=\"131.625\" 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>Private Segment 1</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M272.094,105.62L278.344,104.516C284.594,103.413,297.094,101.207,309.594,100.103C322.094,99,334.594,99,347.094,99C359.594,99,372.094,99,383.934,99.828C395.775,100.655,406.956,102.311,412.546,103.138L418.137,103.966\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-L_node2_secrets_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_node2_secrets_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoxMDUuNjE5Nzc2NTgyNTQwMzR9LHsieCI6MzA5LjU5Mzc1LCJ5Ijo5OX0seyJ4IjozNDcuMDkzNzUsInkiOjk5fSx7IngiOjM4NC41OTM3NSwieSI6OTl9LHsieCI6NDIyLjA5Mzc1LCJ5IjoxMDQuNTUxNzAwMjA4MTg4NzZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_flowchart-v2-pointEnd)\"></path><path d=\"M272.094,255.641L278.344,255.034C284.594,254.427,297.094,253.214,309.594,240.773C322.094,228.333,334.594,204.667,347.094,192.833C359.594,181,372.094,181,386.09,177.445C400.087,173.889,415.58,166.779,423.327,163.224L431.074,159.668\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-L_node3_secrets_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_node3_secrets_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoyNTUuNjQwODc3MTIwMzk3Mn0seyJ4IjozMDkuNTkzNzUsInkiOjI1Mn0seyJ4IjozNDcuMDkzNzUsInkiOjE4MX0seyJ4IjozODQuNTkzNzUsInkiOjE4MX0seyJ4Ijo0MzQuNzA5MTczMzg3MDk2NzcsInkiOjE1OH1d\" data-look=\"classic\" marker-end=\"url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_flowchart-v2-pointEnd)\"></path><path d=\"M272.094,133.049L278.344,134.208C284.594,135.366,297.094,137.683,309.594,149.008C322.094,160.333,334.594,180.667,347.094,190.833C359.594,201,372.094,201,390.448,206.555C408.803,212.111,433.012,223.221,445.116,228.776L457.221,234.332\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-L_node2_logs_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_node2_logs_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoxMzMuMDQ5MjM0NTg4MzMyNjR9LHsieCI6MzA5LjU5Mzc1LCJ5IjoxNDB9LHsieCI6MzQ3LjA5Mzc1LCJ5IjoyMDF9LHsieCI6Mzg0LjU5Mzc1LCJ5IjoyMDF9LHsieCI6NDYwLjg1NjM1MDgwNjQ1MTYsInkiOjIzNn1d\" data-look=\"classic\" marker-end=\"url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_flowchart-v2-pointEnd)\"></path><path d=\"M272.094,277.049L278.344,278.208C284.594,279.366,297.094,281.683,309.594,282.842C322.094,284,334.594,284,347.094,284C359.594,284,372.094,284,388.455,282.428C404.815,280.857,425.037,277.713,435.148,276.142L445.258,274.57\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-L_node3_logs_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_node3_logs_0\" data-points=\"W3sieCI6MjcyLjA5Mzc1LCJ5IjoyNzcuMDQ5MjM0NTg4MzMyNjR9LHsieCI6MzA5LjU5Mzc1LCJ5IjoyODR9LHsieCI6MzQ3LjA5Mzc1LCJ5IjoyODR9LHsieCI6Mzg0LjU5Mzc1LCJ5IjoyODR9LHsieCI6NDQ5LjIxMDkzNzUsInkiOjI3My45NTU0MTI5MDc3MDI5Nn1d\" data-look=\"classic\" marker-end=\"url(#diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_node2_secrets_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_node3_secrets_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_node2_logs_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_node3_logs_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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-flowchart-node3-1\" data-look=\"classic\" transform=\"translate(196.296875, 263)\"><rect class=\"basic label-container\" style=\"fill:#e8f5e9 !important;stroke:#2e7d32 !important\" x=\"-75.796875\" y=\"-27\" width=\"151.59375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-45.796875, -12)\"><rect></rect><foreignObject width=\"91.59375\" 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>MPC Node 3</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-flowchart-node2-0\" data-look=\"classic\" transform=\"translate(196.296875, 119)\"><rect class=\"basic label-container\" style=\"fill:#e8f5e9 !important;stroke:#2e7d32 !important\" x=\"-75.796875\" y=\"-27\" width=\"151.59375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-45.796875, -12)\"><rect></rect><foreignObject width=\"91.59375\" 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>MPC Node 2</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-flowchart-secrets-2\" data-look=\"classic\" transform=\"translate(519.6875, 119)\"><rect class=\"basic label-container\" style=\"\" x=\"-97.59375\" y=\"-39\" width=\"195.1875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-67.59375, -24)\"><rect></rect><foreignObject width=\"135.1875\" 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>Cloud Secret Store<br>Keys &amp; Config</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-flowchart-logs-3\" data-look=\"classic\" transform=\"translate(519.6875, 263)\"><rect class=\"basic label-container\" style=\"\" x=\"-70.4765625\" y=\"-27\" width=\"140.953125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-40.4765625, -12)\"><rect></rect><foreignObject width=\"80.953125\" 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>Cloud Logs</p></span></div></foreignObject></g></g></g></g></g></g></g><defs><filter id=\"diagram-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-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-8eea317222ee3998b912f19959d1fb3a2550fbed6d9a3ab1c9ebf7759bde8fa0-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 TB\n    subgraph cloud[\"Customer Cloud Environment\"]\n        subgraph network[\"Private Network\"]\n            subgraph segment1[\"Private Segment 1\"]\n                node2[\"MPC Node 2\"]\n            end\n            subgraph segment2[\"Private Segment 2\"]\n                node3[\"MPC Node 3\"]\n            end\n        end\n        secrets[\"Cloud Secret Store<br/>Keys & Config\"]\n        logs[\"Cloud Logs\"]\n    end\n\n    node2 --> secrets\n    node3 --> secrets\n    node2 --> logs\n    node3 --> logs\n\n    style cloud fill:#fff3e0,stroke:#ef6c00\n    style network fill:#e3f2fd,stroke:#1565c0\n    style node2 fill:#e8f5e9,stroke:#2e7d32\n    style node3 fill:#e8f5e9,stroke:#2e7d32\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prerequisites","__idx":15},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before deploying customer nodes, ensure you have:"]},{"$$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":"Requirement"},"children":["Requirement"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Cloud account or subscription"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["With permissions to create the provider resources required by the selected deployment guide"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Docker"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Docker Desktop or Docker Engine installed"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MPC Deployer Image"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provided by Ripple"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tenant Configuration"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Alias and instance code from Ripple"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/aws-deployment"},"children":["AWS deployment guide"]}," for detailed instructions."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":16},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Review deployment prerequisites"]}," for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/aws-deployment#prerequisites"},"children":["AWS"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Contact Ripple"]}," to initiate MPC cluster setup."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Follow the deployment guide"]}," for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/aws-deployment"},"children":["AWS"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Review ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/production-best-practices"},"children":["Production best practices"]}]}," for namespace segmentation, HA, and monitoring"]}]}]},"headings":[{"value":"Multi-party computation (MPC) overview","id":"multi-party-computation-mpc-overview","depth":1},{"value":"What is multi-party computation (MPC)?","id":"what-is-multi-party-computation-mpc","depth":2},{"value":"How Ripple Custody uses MPC","id":"how-ripple-custody-uses-mpc","depth":2},{"value":"Node ownership and shared responsibility","id":"node-ownership-and-shared-responsibility","depth":3},{"value":"Architecture","id":"architecture","depth":2},{"value":"Key management flow","id":"key-management-flow","depth":3},{"value":"Key encryption keys (KEK)","id":"key-encryption-keys-kek","depth":2},{"value":"Communication keys (ComKey)","id":"communication-keys-comkey","depth":2},{"value":"Node identification key","id":"node-identification-key","depth":3},{"value":"Backup and restoration","id":"backup-and-restoration","depth":2},{"value":"Backup encryption keys","id":"backup-encryption-keys","depth":3},{"value":"Backup procedures","id":"backup-procedures","depth":3},{"value":"Comparison: MPC vs HSM","id":"comparison-mpc-vs-hsm","depth":2},{"value":"Customer nodes deployment","id":"customer-nodes-deployment","depth":2},{"value":"Deployment process","id":"deployment-process","depth":3},{"value":"Prerequisites","id":"prerequisites","depth":3},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"seo":{"title":"Multi-party computation (MPC) overview"}},"lastModified":"2026-07-27T10:10:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/deployment/integrate-kms/mpc/overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}