Create Key
POST /keys
Creates a key for the given scheme and curve. Returns a new key entity.
Required Permissions
Keys:Create
Always Required.
Keys:Delegate
Required if delegateTo
is specified.
Request Body
scheme
A supported scheme
.
String
curve
A supported curve that's compatible with the chosen scheme
.
String
name
Name given to the key.
String (optional)
delegateTo
ID of the end user to delegate this key to upon creation. The key will be non-custodial and can only be used by the end user.
String (optional)
delayDelegation
Specify this if you want to create the key from a service account and later delegate it to an end user. Defaults to false
.
Boolean (optional)
Example
{
"scheme": "ECDSA",
"curve": "secp256k1"
}
Response Body
id
ID of the key.
String
scheme
Key scheme.
String
curve
Key curve.
String
publicKey
Hex-encoded value of public key.
String
status
Status of the key, 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
imported
true
if the key is imported.
Boolean (optional)
exported
true
if the key was already exported at least once.
Boolean (optional)
200 Success
{
"id": "key-6ece3-9l565-xxxxxxxxxxxxxxxx",
"scheme": "ECDSA",
"curve": "secp256k1",
"publicKey": "02660461d66a637ea2d2ee3565669ad794f51ca3e0812ff03a0fe4820a19754839",
"status": "Active",
"custodial": true,
"dateCreated": "2025-03-26T20:25:52.909Z"
}
Last updated