Delegate Wallet

POST /wallets/:walletId/delegate

Only wallets created with "delayDelegation: true" can then be delegated to an end-user. It means you need to know ahead of time that you're creating a wallet meant to be delegated to an end-user later. This is a safety to prevent, for example, a treasury wallet from being unintentionally delegated to an end-user.

This operation is irreversible. The wallet ownership will be transferred to the end-user

In most cases, when you want to implement Delegated Signing, simply have the end-user create the wallet, in which case it will the noncustodial from the start. There are some rare cases, however, where the wallet must be created before the user has accessed the system. To accommodate this, we've added the ability to create a wallet from a service account, and then later delegate it (ie. transfer ownership of it) to an end user via this endpoint.

Required Permissions

NameConditions

Wallets:Delegate

Always Required

Request

Request body fieldsRequired/OptionalDescriptionType

userId

Required

The ID of the end-user to delegate the wallet to. Eg: "us-gk0i1-5bvju-lj2h98s9h9r5tqp1"

String

Example

{
  "userId": "us-gk0i1-5bvju-lj2h98s9h9r5tqp1"
}

Response

The response indicates the status of the operation.

200 Response example

{
  "status": "Delegated"
}

Last updated