Skip to main content
POST
/
wallets
curl --request POST \
--url https://api.dfns.io/wallets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-DFNS-USERACTION: <api-key>' \
--data '{
"network": "BitcoinSignet",
"signingKey": {
"scheme": "Schnorr"
}
}'
{
  "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": []
}

Authentication

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

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.

Authorizations

Authorization
string
header
required
X-DFNS-USERACTION
string
header
required

Body

application/json
network
enum<string>
required
Available options:
Algorand,
AlgorandTestnet,
Aptos,
AptosTestnet,
ArbitrumOne,
ArbitrumSepolia,
AvalancheC,
AvalancheCFuji,
BabylonGenesis,
BabylonTestnet5,
Base,
BaseSepolia,
Berachain,
BerachainBepolia,
Bitcoin,
BitcoinSignet,
BitcoinTestnet3,
BitcoinCash,
Bob,
BobSepolia,
Bsc,
BscTestnet,
Canton,
CantonTestnet,
Cardano,
CardanoPreprod,
Celo,
CeloAlfajores,
Codex,
CodexSepolia,
CosmosHub4,
CosmosIcsTestnet,
Dogecoin,
Ethereum,
EthereumGoerli,
EthereumSepolia,
EthereumHolesky,
EthereumHoodi,
FantomOpera,
FantomTestnet,
FlareC,
FlareCCoston2,
FlowEvm,
FlowEvmTestnet,
Hedera,
HederaTestnet,
Ink,
InkSepolia,
InternetComputer,
Ion,
IonTestnet,
Iota,
IotaTestnet,
Kaspa,
Kusama,
KusamaAssetHub,
Litecoin,
Near,
NearTestnet,
Optimism,
OptimismSepolia,
Origyn,
Plasma,
PlasmaTestnet,
Plume,
PlumeSepolia,
Paseo,
PaseoAssetHub,
Polkadot,
PolkadotAssetHub,
Polygon,
PolygonAmoy,
Polymesh,
PolymeshTestnet,
Race,
RaceSepolia,
SeiAtlantic2,
SeiPacific1,
Solana,
SolanaDevnet,
Starknet,
StarknetSepolia,
Stellar,
StellarTestnet,
Sui,
SuiTestnet,
Tsc,
TscTestnet1,
Tezos,
TezosGhostnet,
Ton,
TonTestnet,
Tron,
TronNile,
Westend,
WestendAssetHub,
XrpLedger,
XrpLedgerTestnet
name
string
Maximum length: 100
signingKey
object
delegateTo
string
Required string length: 1 - 64
Example:
delayDelegation
boolean
default:false
externalId
string
Maximum length: 100
tags
string[]
Maximum length: 10
validatorId
string
Required string length: 1 - 64
Example:

Response

200 - application/json
id
string
required
Required string length: 1 - 64
Example:
network
enum<string>
required
Available options:
Algorand,
AlgorandTestnet,
Aptos,
AptosTestnet,
ArbitrumOne,
ArbitrumSepolia,
AvalancheC,
AvalancheCFuji,
BabylonGenesis,
BabylonTestnet5,
Base,
BaseSepolia,
Berachain,
BerachainBepolia,
Bitcoin,
BitcoinSignet,
BitcoinTestnet3,
BitcoinCash,
Bob,
BobSepolia,
Bsc,
BscTestnet,
Canton,
CantonTestnet,
Cardano,
CardanoPreprod,
Celo,
CeloAlfajores,
Codex,
CodexSepolia,
CosmosHub4,
CosmosIcsTestnet,
Dogecoin,
Ethereum,
EthereumGoerli,
EthereumSepolia,
EthereumHolesky,
EthereumHoodi,
FantomOpera,
FantomTestnet,
FlareC,
FlareCCoston2,
FlowEvm,
FlowEvmTestnet,
Hedera,
HederaTestnet,
Ink,
InkSepolia,
InternetComputer,
Ion,
IonTestnet,
Iota,
IotaTestnet,
Kaspa,
Kusama,
KusamaAssetHub,
Litecoin,
Near,
NearTestnet,
Optimism,
OptimismSepolia,
Origyn,
Plasma,
PlasmaTestnet,
Plume,
PlumeSepolia,
Paseo,
PaseoAssetHub,
Polkadot,
PolkadotAssetHub,
Polygon,
PolygonAmoy,
Polymesh,
PolymeshTestnet,
Race,
RaceSepolia,
SeiAtlantic2,
SeiPacific1,
Solana,
SolanaDevnet,
Starknet,
StarknetSepolia,
Stellar,
StellarTestnet,
Sui,
SuiTestnet,
Tsc,
TscTestnet1,
Tezos,
TezosGhostnet,
Ton,
TonTestnet,
Tron,
TronNile,
Westend,
WestendAssetHub,
XrpLedger,
XrpLedgerTestnet
signingKey
object
required
status
enum<string>
required
Available options:
Active,
Inactive,
Archived
dateCreated
string
required
Example:
custodial
boolean
required
tags
string[]
required
Maximum length: 10
address
string
dateDeleted
string
Example:
name
string
Maximum length: 100
externalId
string
Maximum length: 100
validatorId
string
Required string length: 1 - 64
Example: