Skip to main content
POST
Create Vault Lock

Authentication

✅ Organization User (CustomerEmployee)
❌ Delegated User (EndUser)
✅ Service Account

Required Permissions

Vaults:Locks:Create: Always required.

Authorizations

Authorization
string
header
required

Bearer Token: Used to authenticate API requests. More details how to generate the token: Authentication flows

X-DFNS-USERACTION
string
header
required

User Action Signature: Used to sign the change-inducing API requests. More details how to generate the token: User Action Signing flows

Path Parameters

vaultId
string
required

Vault id.

Required string length: 1 - 64
Pattern: ^vlt-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$

Body

application/json
network
enum<string>
required

The EVM network the locked asset is on.

Available options:
ArbitrumOne,
ArbitrumSepolia,
Arc,
ArcTestnet,
Areum,
AvalancheC,
AvalancheCFuji,
Base,
BaseSepolia,
Bob,
BobSepolia,
Bsc,
BscTestnet,
Berachain,
BerachainBepolia,
Celo,
CeloAlfajores,
Codex,
CodexSepolia,
Ethereum,
EthereumClassic,
EthereumClassicMordor,
EthereumSepolia,
EthereumHoodi,
FlareC,
FlareCCoston2,
FlowEvm,
FlowEvmTestnet,
Ink,
InkSepolia,
Optimism,
OptimismSepolia,
Plasma,
PlasmaTestnet,
Plume,
PlumeSepolia,
Polygon,
PolygonAmoy,
Rayls,
RaylsTestnet,
Robinhood,
RobinhoodSepolia,
SeiPacific1,
SeiAtlantic2,
Sonic,
SonicTestnet,
Tempo,
TempoModerato,
Tsc,
TscTestnet1,
Xdc,
XdcApothem,
XLayer,
XLayerSepolia
tid
string
required

The token identifier of the asset to lock (e.g. native:eth or erc20:0x...).

amount
string
required

The amount to lock, in minimum denomination.

Pattern: ^\d+$
externalId
string

A unique id from your system. Unique per vault among live locks: a replacement lock inherits it, and it cannot be reused by a new lock, even after the lock is deleted.

Required string length: 1 - 50
reason
string

An optional reason or note for the lock.

beneficiary
string

The address on network the locked funds are sent to when the owner transfers the lock. Immutable once set; a lock without a beneficiary can only be released.

Response

200 - application/json

Success

Vault lock object: funds manually locked for off-chain settlement or escrow. The owner can release them back to the vault or transfer them to the beneficiary.

id
string
required

Vault lock id.

Required string length: 1 - 64
Pattern: ^vlt-lck-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
Example:

"vlt-lck-0lf1e-8a8ag-2ak7vrvusrj3so0j"

vaultId
string
required
network
string
required
tid
string
required
amount
string
required
owner
string
required

The user that created the lock. Only this user can update or delete it.

dateCreated
string<date-time>
required
externalId
string
reason
string

The reason or note the lock was created with.

beneficiary
string

The address the locked funds are sent to on transfer. Set at creation and inherited on update.

transferId
string

Set when the owner transferred the lock: the outgoing transfer sending transferAmount of the locked funds to the beneficiary. The funds stay locked until that transfer is confirmed, which deletes the lock. Cleared if the transfer fails, so the lock can be transferred again.

transferAmount
string

Set with transferId: the amount being sent to the beneficiary, in minimum denomination. The remainder of the locked amount returns to the available balance when the lock is deleted.

replacesLockId
string

Set when this lock was created by an update: the lock it replaces.

Required string length: 1 - 64
Pattern: ^vlt-lck-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
Example:

"vlt-lck-0lf1e-8a8ag-2ak7vrvusrj3so0j"

replacedByLockId
string

Set when this lock was released by an update: the lock that replaced it.

Required string length: 1 - 64
Pattern: ^vlt-lck-[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{14,16}$
Example:

"vlt-lck-0lf1e-8a8ag-2ak7vrvusrj3so0j"

dateDeleted
string<date-time>
Last modified on September 17, 2026