SettleMint
ConceptsCustody & signing

Custody Provider

A Custody Provider decides who signs for an organization's accounts, a managed custodian or the holder's own wallet, without changing accounts or approvals.

An organization's provider configuration resolves who signs for it.An Organization vessel holds a focal Provider configuration card: a stored, probed record whose provider and credential source are fixed for the life of the record, with credentials that change by rotation. An accent edge labelled resolves the signer runs to a managed custody provider card, a service that holds the keys and signs on request, naming DFNS, Fireblocks, Luna HSM, Ripple, and the platform key store. A second edge labelled or the holder signs runs to a self-custody provider card, where Privy, Dynamic, and browser wallets let the holder sign with a key that stays theirs. A separate quiet card marked different job notes that custody approval approves a payload, not the signer.An organization's provider configuration resolves who signs for it.The same figure as the desktop variant, drawn portrait for phone widths: the organization's provider configuration resolves the signer, which is either a managed custody provider that holds the keys or a self-custody provider where the holder signs. Custody approval sits apart as a different job that approves a payload, not the signer.

An organization's provider configuration resolves who signs: a managed provider that holds the keys, or the holder's own wallet. Custody approval is a separate mechanism that authorizes a payload, not the signer.

A configuration's provider and credential source are fixed at creation. Credentials change through probed rotation, and every new or rotated credential must pass a live probe against the provider before the platform commits it. A different provider is a new configuration.

Managed signing requires a healthy configuration. New accounts also require that configuration to be enabled for account creation.

Custody provider is not custody approval: the provider signs, the approval decides whether a payload may be signed at all.

Why the custody provider matters

A custody provider lets an organization decide who holds the key that signs for its accounts. That key sits with a managed custodian that signs under its own policy, or with the account holder's own wallet, where the holder signs and the platform never touches the key. That choice sits underneath every privileged operation an account performs across an asset's lifecycle: a subscription, a corporate action, a trade delivery. Each one confirms through signer verification at the moment of signing, whatever the bound provider requires. Which provider backs an account changes who can sign. It never changes who owns the position.

Every account is created against one provider configuration, a stored record naming the provider, the networks it serves, and whose credentials it uses. That record decides who controls the keys behind every transaction the organization submits.

Providers come in two kinds. A managed provider holds keys and signs when the platform asks. The managed family covers DFNS, Fireblocks, Luna HSM, Ripple custody, and the platform key store, which keeps keys in the platform's own secret store. A self-custody provider hands signing to the account holder instead. Privy, Dynamic, and browser wallets connect a wallet the holder controls, and the platform never holds that key. These signing integrations support EVM-compatible networks. A deployment also decides which of these providers it offers at all: every kind has a switch, custody.providers.<kind>.enabled, and Ripple custody is the one that ships off. While a provider is off it appears nowhere in the Console, no organization can store a new configuration for it, and the deployment refuses to boot if it names that provider as its own signer. Configurations stored before the switch moved keep signing, and their credentials can still be rotated.

Every provider kind the deployment offers is available when adding a configuration. What the deployment decides is narrower: whether platform credentials will work for that choice, since they resolve only for the provider this deployment's own signer is built for. An organization can run several configurations side by side, and each account keeps the configuration it was created with. A configuration's provider and credential source cannot change afterward, so custody moves only when an administrator adds a new configuration and points new accounts at it.

Managed keys or the holder's own wallet

Choose managed custody for accounts the organization operates. Provider policy decides which signing requests can proceed automatically and which need approval. With an external provider, keys remain with that provider. Platform key storage keeps them within the deployment's trust boundary.

Choose a self-custody provider for holders who keep their own keys. The holder signs in person for every request, and no instruction from the platform can move their assets on its own. The account is proven by an interactive signature from the holder's wallet, and later signing requests require the holder's interaction. The cost is recoverability: the platform cannot restore a lost external key, and identity verification does not restore key control, so a holder should add another active signer before access is lost.

Managed configurations carry one further choice: whose credentials reach the custodian. Platform credentials come from the deployment operator's own custodian relationship, so an organization can start signing before it has a custodian contract of its own. Organization credentials are supplied and rotated by the organization itself, against a custodian account it can audit independently, which puts the rotation duty where the audit obligation already sits.

Managing custody day to day

An organization owner or a platform administrator manages provider configurations from the Console's Custody screen, under organization settings. Each configuration shows as a card naming its provider, execution health, and whether it accepts new accounts, along with the latest quarantine or recovery event. The same screen adds a configuration, which the platform records only once a live probe against the provider succeeds. It also controls account creation separately from execution: disabling new accounts stops only new signups, and existing accounts keep signing through it. For a managed configuration, the same screen rotates its credentials. Quarantining or recovering execution requires a written reason that lands in the audit trail.

How rotation replaces a credential

A custody credential never changes in place. Rotation stages a replacement and runs it through a probe gate before anything currently signing is touched.

A rotation must pass a live provider probe before it replaces the active credential.A candidate credential at version n plus one enters a rotation gate. The gate runs one rotation at a time and probes the candidate against the live provider within a 30 second bound. Only a candidate that passes reaches the active credential slot and signs from then on; a failed probe discards the candidate and version n keeps signing.A rotation must pass a live provider probe before it replaces the active credential.The same figure as the desktop variant, drawn portrait: a candidate credential at version n plus one flows into a rotation gate that runs one rotation at a time and requires a live probe within a 30 second bound, discarding a failed candidate so version n keeps signing. A passing candidate becomes the active credential.

A candidate credential becomes active only after a live probe against the provider succeeds; a failed probe discards the candidate and leaves the current credential signing.

Rotation runs for one configuration at a time. A per-configuration lock serializes concurrent rotation requests, so a second request waits for the first to finish rather than racing it; if the first holds the lock past 30 seconds, the second times out and fails instead of waiting indefinitely. The probe itself is bounded at the same 30 seconds, so a provider that stops answering fails the rotation rather than hanging it.

The commit updates the credential version and the rotation timestamp together. Signing picks up the new credential from that moment; the platform detects the version change and rebuilds its connection to the provider, with no restart involved. A rotation on a quarantined configuration passes through the same gate and can succeed, but it does not restore execution. Recovery is its own step with its own evidence.

Health states decide what a configuration may do

A custody provider configuration is always in one of three health states: healthy, unhealthy, or quarantined. A healthy managed configuration can sign, and it appears in the account-creation catalog only when new accounts are enabled. Unhealthy and quarantined configurations do neither: managed signing refuses them, and new accounts cannot select them.

Three health states decide whether a custody provider configuration may sign.Three states sit in a row. Healthy, the focal state, signs and opens accounts. A probe that fails moves it to Unhealthy, and a probe that passes moves it back, with no administrator involved. Quarantined is entered when an administrator quarantines a healthy or unhealthy configuration with a recorded reason, and leaving it requires recovery: a fresh passing probe plus a recorded reason.Three health states decide whether a custody provider configuration may sign.The same figure as the desktop variant, drawn portrait: Healthy signs and opens accounts, a failed probe moves it to Unhealthy and a passing probe moves it back, an administrator quarantines a healthy or unhealthy configuration with a reason, and recovery back to Healthy requires a fresh passing probe and a recorded reason.

Probes move a configuration between healthy and unhealthy on their own. Quarantine and recovery are administrator decisions with recorded reasons, and only a healthy configuration signs or opens accounts.

Healthy and unhealthy track the probes. A failed probe marks the configuration unhealthy, stopping it from signing or opening new accounts, and a later passing probe restores it, with no administrator involved in either direction. The fix runs on the provider's own side: the probe reaches the live provider, so there is nothing to reset on the platform beyond running Probe again once the fault clears there. Quarantine is the third state, and it does not follow that automation: only an administrator can enter or leave it.

An administrator quarantines a configuration with a written reason, and the state sticks: passing probes are recorded but change nothing, and a successful credential rotation does not clear it either. Recovery is just as deliberate: it refuses to run unless a probe has passed since the quarantine began, and it records its own reason, so the audit trail shows who stopped execution, why, who restored it, and on what evidence.

The integration contract

On the API, custody is a catalog of provider configurations scoped to the caller's organization. The GET /custody/provider-configurations route serves the account-creation listing. Every other operation, list, create, probe, enable, disable, quarantine, recover, rotate, and delete, runs under the admin provider configuration endpoints, restricted to an organization owner or a platform administrator.

Two read surfaces exist for two audiences. The account-creation listing returns only healthy configurations enabled for new accounts, with credential provenance and execution diagnostics excluded, because a caller opening an account needs capabilities and nothing more. The administrator listing adds provenance, health, and the latest audit event, and still returns no secret material. No custody read anywhere returns a credential.

Some refusals carry a distinct id worth handling by name; others collapse into one. A probe failure answers DALP-12006 and is retryable. A delete against a configuration that accounts still reference answers DALP-12009 rather than cascading. Recovering without a probe that passed since the quarantine began answers DALP-12005. Quarantine or recovery with an empty reason answers DALP-12008. A request that would change a configuration's provider or credential source, and a rotation that repeats a current or older credential version, both answer the same DALP-12004. Treat them as one case in your own error handling, since the wire gives no way to tell them apart. The error catalog lists the full set.

Controls and evidence

For a control function, a custody credential is a secret the platform holds but never shows. Credentials live in the platform's secret store, keyed to one configuration and one credential version, and no Console screen or API response returns them. The platform reads them server-side only, to sign and to probe.

Evidence accumulates on the configuration itself. Every rotation stamps a rotation time and a strictly increasing credential version, so an auditor can reconstruct when each credential took over without an external change log. Every quarantine and every recovery writes an audit event naming what was done, who did it, the written reason, and when. A recovery event also records the passing probe that justified it.

Immutability is enforced at the record, before anything reaches a provider, rather than at the custodian. The answer to which signer was authoritative for an account, and when, therefore has exactly one source: the configuration's own history.

Frequently asked questions

Can an administrator quarantine a configuration while a rotation is running?

Yes. Quarantine runs through its own path and does not wait on the per-configuration rotation lock, so it can complete while a rotation is still probing. Both changes remain in force: if the rotation goes on to succeed, the new credential becomes active, but the configuration is already quarantined and stays stopped, exactly like any other rotation on a quarantined configuration.

Does the health state mean anything for a self-custody provider?

Not in the same way. A live probe only exists for managed providers; a self-custody configuration has no server-side credential to test, so its probe passes automatically and it stays Healthy by default. Quarantine still applies the same way: an administrator can quarantine a self-custody configuration with a recorded reason, which removes it from the account-creation catalog exactly as it would a managed configuration.

Can a self-custody provider's credentials be rotated the same way?

No. A self-custody provider has no platform-held credential to rotate, since the holder's own wallet signs and the platform never stores a key for it. A rotation request against a self-custody configuration is refused with the same DALP-12004 as an attempt to change a configuration's provider, because only a managed configuration's credential source is a mutable thing at all.

  • Asset Lifecycle: The stages an issued instrument moves through; every privileged operation in every stage confirms through signer verification at the moment of signing, which is where a custody provider does its work.
  • Custody Approval: The maker-checker gate that authorizes a specific payload before it is sent to the custody provider for signing; a separate concern from which provider holds the keys.
  • Smart Wallet: The on-chain account a custody provider can sign for; omitting a multisig configuration leaves a single owner key, which only makes sense when that key already sits behind a custody provider's own controls.
  • Multisig: The other approval plane under custody approval, a weighted Smart Wallet whose own signers replace a single key that a custody provider or hardware module would otherwise gate.
  • Maker-checker: The platform-enforced approval a proposed change needs before it takes effect, a different question from whether a custody provider's own policy lets a key sign.
  • Operator Wallet: A wallet that pays gas for platform-initiated operations such as account-abstraction bundling, separate from any custody provider that signs for an organization's own accounts.

On this page