Skip to main content
POST
Create account vault
Each account has one Vault, on a chain Stableyard configures; you cannot select it. Choose an ownershipMode:
  • stableyard returns a persisted predictedSafeAddress with status provisioning while deployment and policy installation continue in the background. That confirms the address is allocated, not deployed: wait for status active or the vault.policy_active webhook before funding or using the Vault. An already verified account email authorizes the initial managed policy automatically; otherwise complete the returned contact-verification action. managedContact must match the UPA’s verified email if it has one. The configured platform multisig is the final owner.
  • external is for account owners who sign policy changes themselves.
Idempotency-Key is required; reuse it only with the identical request. See Treasury settlement.

Authorizations

Authorization
string
header
required

HTTP Basic auth. Username is the Stableyard app ID. Password is the app secret. The optional Stableyard-Version request header must match the environment pin.

Headers

Idempotency-Key
string
required

Required retry key. Reuse only with the identical vault request.

Example:

"payment-request-001"

Stableyard-Version
enum<string>

Optional contract-version assertion. Omit it to use the app environment's pinned version. A different supported version is accepted only after that environment is explicitly migrated.

Available options:
2026-09-09

Path Parameters

accountId
string
required

Canonical account id returned by the Accounts API.

Example:

"acct_123"

Body

application/json
ownershipMode
enum<string>
required
Available options:
external,
stableyard
owner
object
managedContact
object

Canonical UPA email used for managed policy authorization. The initial policy OTP also verifies this email for KYC and fiat services. If the UPA already has a verified email, this value must match it.

initialPolicy
object

Response

Vault

id
string
required
Example:

"vault_123"

accountId
string
required
Example:

"acct_123"

chainId
integer
required
Example:

42161

ownershipMode
enum<string>
required
Available options:
external,
stableyard
status
enum<string>
required
Available options:
pending_authorization,
provisioning,
awaiting_policy,
active,
suspended,
failed,
requires_intervention
monitoring
object
required
earning
object
required
resourceVersion
integer
required
Required range: x >= 1
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
safeAddress
string | null
predictedSafeAddress
string | null

Allocated Safe address, persisted before managed creation returns. The address is not evidence of deployment or readiness to receive funds. Wait for status active before funding or using the Vault.

rolesModuleAddress
string | null
activePolicyId
string | null
activePolicy
Active Vault policy · object | null
latestPolicy
Latest Vault policy · object | null
nextAction
Vault action required · object | null
pendingActions
object[]
spendUsage
object
mandates
object[]
failureCode
string | null