Skip to main content
POST
/
keys
/
{keyId}
/
export
Export Key
curl --request POST \
  --url https://api.dfns.io/keys/{keyId}/export \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-DFNS-USERACTION: <api-key>' \
  --data '{
  "encryptionKey": "<string>",
  "supportedSchemes": [
    {
      "protocol": "CGGMP24",
      "curve": "ed25519"
    }
  ]
}'
{
  "publicKey": "<string>",
  "protocol": "CGGMP24",
  "curve": "ed25519",
  "minSigners": 123,
  "encryptedKeyShares": [
    {
      "signerId": "<string>",
      "encryptedKeyShare": "<string>"
    }
  ]
}

Authentication

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

Required Permissions

Keys:Export: 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

keyId
string
required
Minimum length: 1

Body

application/json
encryptionKey
string
required
Minimum length: 1
supportedSchemes
object[]
required

Response

200 - application/json

Success

publicKey
string
required
protocol
enum<string>
required
Available options:
CGGMP24,
FROST,
FROST_BITCOIN,
GLOW20_DH,
KU23
curve
enum<string>
required
Available options:
ed25519,
secp256k1,
stark
minSigners
number
required

The TSS threshold of the wallet private signing key shares

encryptedKeyShares
object[]
required

Keyshares of the exported wallet. They are encrypted with the provided encryption key. The exported private key is re-constructed from these keyshares.

I