Create Wallet
POST /wallets
Creates a new Wallet
associated with the given chain (such as Bitcoin
or Ethereum
). Returns a new wallet entity.
Required Permissions
Wallets:Create
Always Required
Keys:Create
Required if wallet creation also creates a new Key entity. This is the default behavior.
Keys:Reuse
Required if signingKey.id
is specified. Wallet will reuse an existing key instead of creating a new one.
Keys:Delegate
Required if delegateTo
is specified.
Wallets:Tags:Add
Required if tags
are specified.
Request Body
name
Name given to the wallet
String (optional)
signingKey.id
Create a wallet from an existing key. This enables one key to be used across multiple networks and have the same address if networks share the same address format, ex. Ethereum
and Polygon
. If specified, requires the Keys:Reuse
permission. If the key is delegated to an end user, then the new wallet will be automatically delegated to the same end user.
String (optional)
signingKey.scheme
For networks that support multiple key formats, specify the scheme of the key to create. ex. use Schnorr
to create a Bitcoin Taproot
wallet.
String (optional)
signingKey.curve
For networks that support multiple key formats, specify the curve of the key to create.
String (optional)
tags
List of tags to be created for this wallet. If specified, requires the Wallets:Tags:Add
permission, like the Tag Wallet endpoint.
Array<String> (optional)
delegateTo
ID of the end user to delegate this wallet to upon creation. The wallet will be non-custodial and can only be used by the end user.
String (optional)
delayDelegation
Specify if you want to create the wallet from a service account and later delegate it to an end user. Defaults to false
.
Boolean (optional)
validatorId
For Canton Networks, specify the validator on which the wallet is going to be created
String (optional)
Example
{
"network": "Ethereum",
"name": "trading hot wallet"
}
Response Body
id
ID of the wallet.
String
network
Network wallet is bound to.
String
address
Wallet address on its corresponding network.
String
name
Name given to the wallet.
String (optional)
signingKey.id
ID of the key for the wallet.
String
signingKey.scheme
Key scheme.
String
signingKey.curve
Key curve.
String
signingKey.publicKey
Hex-encoded value of the public key.
String
signingKey.delegatedTo
The end user ID the key (and wallet) is delegated to.
String (optional)
status
Status of the wallet, can be one of Active
, Archived
.
String
custodial
Whether the wallet is owned by an end user (non-custodial), or by your organization (custodial).
Boolean
tags
List of tags.
Array<String>
200 Success
{
"id": "wa-1f04s-lqc9q-xxxxxxxxxxxxxxxx",
"network": "Ethereum",
"address": "0x00e3495cf6af59008f22ffaf32d4c92ac33dac47",
"name": "trading hot wallet",
"signingKey": {
"id": "key-6ece3-9l565-xxxxxxxxxxxxxxxx",
"scheme": "ECDSA",
"curve": "secp256k1",
"publicKey": "e2375c8c9e87bfcd0be8f29d76c818cabacd51584f72cb2222d49a13b036d84d3d"
},
"status": "Active",
"dateCreated": "2023-04-14T20:41:28.715Z",
"custodial": true,
"tags": []
}
Last updated