Creates a new Deadman Vault record and provisions a dedicated custodial keeper keypair for it. The vault is initialized inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/natureloved/DeadMan-Vault/llms.txt
Use this file to discover all available pages before exploring further.
funding status — it is not yet active on-chain. After this call completes, the owner must send the specified USDCx depositAmount to the returned keeperAddress, then call POST /api/vaults/{id}/fund with the resulting transaction ID to lock funds on-chain and start the heartbeat countdown.
Endpoint
Request Parameters
Request Body
Send a JSON object with the following fields:The Stacks address of the vault owner (e.g.
ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM). This address is stored as owner_address and used for all lifecycle queries.The USDCx amount to lock in the vault, expressed as a decimal string (e.g.
"100"). This value is stored as-is and passed to the FlowVault contract during the fund step.The heartbeat interval in days. Must be between
7 and 730. If no heartbeat is received within this many days, the keeper begins advancing the vault toward triggered status.An array of beneficiary objects. The
allocationPercent values across all entries must sum to exactly 100.Email address for the vault owner. Used to send heartbeat reminders and lifecycle alerts. Optional but strongly recommended.
An optional message displayed to beneficiaries on the claim page once the vault is triggered. Stored as
message_to_beneficiaries.An optional human-readable name for the vault displayed in the dashboard (e.g.
"Family Trust").Response
Returns201 Created with a JSON object containing the new vault’s ID and the keeper address to fund.
The UUID of the newly created vault record. Use this in subsequent calls to
GET /api/vaults/{id}, PATCH /api/vaults/{id}, and POST /api/vaults/{id}/fund.The Stacks address of the vault’s dedicated custodial keeper keypair. Send the
depositAmount in USDCx to this address before calling the fund endpoint — the keeper uses the balance to call FlowVault.deposit() on-chain.The beneficiary
allocationPercent values must sum to exactly 100. The server rejects any request where the total differs, returning a 400 error.Example Request
Example Response
Error Responses
| Status | Error | Description |
|---|---|---|
400 | Missing required fields | One or more of ownerAddress, depositAmount, or heartbeatDays was absent from the request body. |
400 | Beneficiary allocations must total 100% | Allocation percentages across all beneficiary entries did not sum to 100, or another validation rule (e.g. invalid beneficiary address) was violated during vault initialization. |
500 | Server misconfigured: missing Supabase env vars | Required server-side environment variables are absent. |