Skip to main content
WalletSuite is a hosted platform — nothing to self-operate. Items are grouped by axis: cross-cutting (every deployment), agent connection & capability (hosted MCP agents), and signing layer.

Cross-cutting (all surfaces)

Credentials and authentication

  • Production credentials issued — see Credentials & Authentication
  • Credentials stored in a secret manager — not hardcoded in source, not committed to version control
  • Rate limits reviewed and understood — see Rate Limits

Error handling

All 6 error categories handled:
  • validation — fix input and retry
  • upstream — retry with exponential backoff
  • flow — execute the requiredAction field before retrying (MCP)
  • auth — halt the agent, alert the operator
  • limit — back off, retry after the rate limit window
  • not_available — inform the user the feature is not enabled
See Structured Errors.

Security

  • No private keys or mnemonics in source control or tool arguments
  • No secrets passed as MCP tool parameters — credentials are exchanged server-side, never as tool input
  • HTTPS enforced for all external URLs
Before going live, review: Security Overview · Security Diligence · Build & Supply Chain.

Agent connection & capability (hosted MCP agents)

Per-agent tool profile and token scopes

One hosted platform serves every agent; each is scoped independently. Grant the minimum — see Execution Levels.
  • Each agent bound to the minimum tool profile for its role (read / prepare / execute / governed)
  • Read-only agents bound to the read profile — no wallets:sign scope present
  • Token scopes requested at exchange match the agent’s role — nothing beyond what the role needs
  • Each agent’s tool profile and scopes have a documented justification
  • Confirmed that tools outside the profile are never registered — the tool profile is the prompt-injection boundary, not any per-agent runtime

Connect flow

The server holds the long-lived agent key and authorizes the agent with it — see Connect Your Agent.
  • Long-lived agent key stored in a secret manager — never in source, browser, prompt, or a downstream MCP call
  • Agent key rotation policy documented
  • Revocation path verified — revoking the agent key cuts the agent off (it is the revocation anchor)
  • Short-lived token refreshed before it expires — re-authorize with the agent key
  • Bearer never persisted, logged, or hardcoded

Signing layer

Policy gates

  • At least one allowlist rule armed — matching on chain, operation type, contract, method, an optional destination, and an optional per-transaction amount cap in base units, with a mandatory expiry. See Policy Gates
  • Policy tested: verified that signing to a non-allowlisted destination or above the amount cap is denied
  • Policy denial returns a flow error with requiredAction — verify your agent handles it. See Policy Gates → What a Deny Does
  • Governed agents’ rules administered through the admin API; every decision lands in the decision record

MPC threshold signing

Non-custodial: no full private key ever exists, and no single party can sign alone. See Trust Model.
  • Customer-side share held in your own storage (database, HSM, device, or passkey-wrapped envelope) — never reaches WalletSuite; WalletSuite’s share is envelope-encrypted at rest behind the scenes
  • External BYO signer verified if used (KMS / HSM / multisig) — SDK or REST surfaces
  • Co-signing latency monitored (typical warm path: 200–600ms)
  • Audit trail export to SIEM configured if long-term retention is required — see Audit Trail
  • Alerts configured for signing failures and policy denials

Deployment validation

  • Connect flow returns a scoped token — server authorizes with the agent key and the MCP client points at the hosted endpoint. See Connect Your Agent
  • R0 read: a balance query returns expected balances
  • R1 prepare: prepare returns a valid unsigned transaction
  • R2 execute (if used): signing flow completes (MPC co-sign), broadcast confirms on-chain in staging