{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/deployment/reference/mpc-configuration","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/deployment/reference/mpc-configuration","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/reference/mpc-configuration","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/reference/mpc-configuration","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/reference/mpc-configuration","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/reference/mpc-configuration","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/reference/mpc-configuration","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"MPC configuration","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":"mpc-configuration","__idx":0},"children":["MPC configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this page to understand the Multi-Party Computation (MPC) fields used by Vault configuration in ","Ripple Custody",". The example shows one possible configuration shape; node endpoints, threshold policy, resource values, and network routing depend on your deployment."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For MPC deployment procedures, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/overview"},"children":["MPC overview"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/aws-deployment"},"children":["MPC on AWS"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-this-config-controls","__idx":1},"children":["What this config controls"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["MPC provides distributed key management. In the documented MPC model:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Four MPC nodes hold key shares."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["No single node has the complete key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A 3-of-4 threshold is used for signing operations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Nodes 0 and 1 are hosted by Ripple."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Nodes 2 and 3 are deployed by the customer."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Vault connects to the MPC network through the Node 0 HTTP API."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"vault-fields","__idx":2},"children":["Vault fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Location: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.vaults.<vault-id>"]}]},{"$$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":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$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":"code","attributes":{},"children":["platform"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kms_mpc"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["notary_public_key"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notary public key used for Vault/Notary communication."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kms_mpc.url"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["string"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["URL of MPC Node 0."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kms_mpc.threshold"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Minimum number of MPC nodes required to participate in signing."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"kms-mpc-url","__idx":3},"children":["KMS MPC URL"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["kms_mpc.url"]}," field points the Vault at MPC Node 0."]},{"$$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":"Attribute"},"children":["Attribute"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Format"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["http://<node-0-host>:<port>"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://<node-0-host>:<port>"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Common port"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["8888"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Target node"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Node 0"]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Configure the Vault to connect to MPC Node 0. Do not point Vault at Nodes 1, 2, or 3."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"kms-mpc-threshold","__idx":4},"children":["KMS MPC threshold"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["threshold"]}," value sets how many MPC nodes must participate in a signing operation."]},{"$$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":"Threshold"},"children":["Threshold"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fault tolerance"},"children":["Fault tolerance"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Availability trade-off"},"children":["Availability trade-off"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["2"]}," of 4"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Two nodes can fail."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Lower participation requirement."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["3"]}," of 4"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["One node can fail."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Documented threshold for the standard 4-node model."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4"]}," of 4"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No nodes can fail."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Requires every node for signing."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"vault-service-fields","__idx":5},"children":["Vault service fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Location: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["vault"]}]},{"$$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":"Field"},"children":["Field"]},{"$$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":"code","attributes":{},"children":["env.VAULT_LOGLEVEL"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault logging level. Possible values shown in the draft reference: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["debug"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["info"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["warn"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["env.VAULT_ID"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault instance UUID. This matches the key in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["harmonize.vaults"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.requests"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CPU and memory requests for Vault."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["resources.limits"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CPU and memory limits for Vault."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Platform and internal sidecar addresses are managed by the release package unless explicitly exposed."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"network-relationship","__idx":6},"children":["Network relationship"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Vault must be able to reach MPC Node 0."]},{"$$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":"Direction"},"children":["Direction"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Source"},"children":["Source"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Destination"},"children":["Destination"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Common port"},"children":["Common port"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Protocol"},"children":["Protocol"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Outbound"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault pod"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["MPC Node 0"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["8888"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HTTP or HTTPS"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If Node 0 is in another network, the required routing, firewall, VPN, peering, and TLS decisions are deployment-specific."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"example","__idx":7},"children":["Example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This example shows a Vault configured to use MPC:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"harmonize:\n  vaults:\n    \"00000000-0000-0000-0000-000000000000\":\n      enabled: true\n      platform: kms_mpc\n      notary_public_key: \"ed25519:<notary-public-key>\"\n      kms_mpc:\n        url: \"https://mpc-node-0.example.com:8888\"\n        threshold: 3\n\nvault:\n  env:\n    VAULT_LOGLEVEL: \"info\"\n    VAULT_ID: \"00000000-0000-0000-0000-000000000000\"\n  resources:\n    requests:\n      cpu: 500m\n      memory: 256Mi\n    limits:\n      cpu: 2000m\n      memory: 512Mi\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":8},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/overview"},"children":["MPC overview"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/aws-deployment"},"children":["MPC on AWS"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/planning/key-management"},"children":["Key management planning"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/kms-vault"},"children":["Vault configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/kms-notary"},"children":["Notary configuration"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/reference/networking"},"children":["Networking configuration"]}]}]}]},"headings":[{"value":"MPC configuration","id":"mpc-configuration","depth":1},{"value":"What this config controls","id":"what-this-config-controls","depth":2},{"value":"Vault fields","id":"vault-fields","depth":2},{"value":"KMS MPC URL","id":"kms-mpc-url","depth":3},{"value":"KMS MPC threshold","id":"kms-mpc-threshold","depth":3},{"value":"Vault service fields","id":"vault-service-fields","depth":2},{"value":"Network relationship","id":"network-relationship","depth":2},{"value":"Example","id":"example","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"MPC configuration"}},"lastModified":"2026-07-27T10:10:43.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/deployment/reference/mpc-configuration","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}