docs
Get startedTroubleshootingPaymentsWebhooksAgent paymentsSwop MCPOviIdentity (swop.id)SwivyRPC (preview)API reference

Policies & spending limits

One policy per environment decides which chains, wallets, signing, sessions and limits your users get.

Preview: Swivy is not generally available

Swivy runs in staging only. Field names below come from Swivy's OpenAPI EnvironmentPolicy schema and can change. Request early access.

In plain words: the policy is the rulebook for one environment. It lives on the server, not in your app, so you can tighten a limit without shipping a new build. Set it in the console or from your backend.

// Server only: needs an organization admin credential
await swivy.updateEnvironmentPolicy('env_...', policy);

PUT /v1/control/environments/{environmentId}/policy replaces the whole policy, so send every section.

Sections

SectionWhat it controls
allowedChainsChain families the environment may use: evm, solana.
walletPolicyWhether embedded and linked wallets are allowed, whether split custody is allowed, the default custody mode, whether wallets are auto-created at login and on which chains.
signingPolicyWhether signing needs MFA, whether raw signing is allowed, and which signing kinds are allowed (sign_message, sign_digest, sign_typed_data, sign_transaction).
executionPolicyWhether sending needs MFA, whether hosted execution is on, a per-transaction value cap (maxTransactionValueUsd) and gas sponsorship.
exportPolicyWhether key export is allowed at all, and whether it needs MFA.
sessionPolicyWhether agent session grants are allowed, whether creating one needs MFA, default and maximum expiry, allowed signing kinds, whether grants may execute transactions, allowed networks and a value cap.
recoveryPolicyWhich recovery routes are on: email, passkey, SMS.
walletToolPolicyLimits for built-in wallet tools (swap quotes and prediction-market orders): on/off, maximum swap value, maximum slippage, allowed tokens.
rpcProviderPolicy, blockchainDataPolicy, offlineSigningPolicyAdvanced routing and offline-signing settings.

Spending limits that matter most

  • Per transaction: executionPolicy.maxTransactionValueUsd caps any single transaction a user sends.
  • Per agent: sessionPolicy.maxTransactionValueUsd caps what an agent can do with a grant, and each grant can set a lower scope.maxTransactionValueUsd and maxUses.
  • Sponsorship budget: executionPolicy.sponsorship.maxSpendPerUserUsd and maxSpendPerDayUsd cap the gas you pay for.

Good defaults

  • Require MFA for execution and export.
  • Keep raw signing and export off unless you have a specific need.
  • Auto-create wallets only on the chains you actually use.
  • Keep session grants short (a low maxExpirySeconds) and limited to the networks the agent needs.

On this page