Skip to main content
POST
/
wallets
/
{walletId}
/
signatures
curl --request POST \
--url https://api.dfns.io/wallets/{walletId}/signatures \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-DFNS-USERACTION: <api-key>' \
--data '{
"network": "BitcoinSignet",
"kind": "Bip322",
"message": "0x49206c6f76652044666e73"
}'
{
  "id": "<string>",
  "keyId": "<string>",
  "requester": {
    "userId": "<string>",
    "tokenId": "<string>"
  },
  "requestBody": {
    "kind": "Hash",
    "hash": "<string>",
    "taprootMerkleRoot": "<string>",
    "network": "Algorand",
    "blockchainKind": "Algorand",
    "externalId": "<string>"
  },
  "status": "Pending",
  "reason": "<string>",
  "signature": {
    "r": "<string>",
    "s": "<string>",
    "recid": 123,
    "encoded": "<string>"
  },
  "signatures": [
    {
      "r": "<string>",
      "s": "<string>",
      "recid": 123,
      "encoded": "<string>"
    }
  ],
  "signedData": "<string>",
  "network": "Algorand",
  "txHash": "<string>",
  "fee": "<string>",
  "approvalId": "<string>",
  "dateRequested": "<string>",
  "datePolicyResolved": "<string>",
  "dateSigned": "<string>",
  "dateConfirmed": "<string>",
  "externalId": "<string>",
  "walletId": "<string>"
}

Authentication

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

Required Permissions

Keys:Signatures:Create: 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

walletId
string
required
Minimum length: 1

Body

application/json
  • Hash
  • Message
  • EIP-7702 Authorization
  • Transaction
  • EIP-712 TypedData
  • PSBT
  • BIP-322
  • PactCommand
  • SignDocDirect
  • SignerPayload
  • CIP-8

All cryptographic scheme support hash signing. Different blockchains will apply different hash functions to compute the hash.

kind
enum<string>
required
Available options:
Hash
hash
string
required

32-byte hash in hex encoded format.

taprootMerkleRoot
string

Required when signing with a Schnorr key. Specify the merkle root for tweaking the signing key, or the empty string "" to tweak with the default merkle root.

network
enum<string>
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,
Hedera,
HederaTestnet,
Ink,
InkSepolia,
InternetComputer,
Ion,
IonTestnet,
Iota,
IotaTestnet,
KadenaTestnet4,
Kadena,
Kaspa,
Kusama,
Litecoin,
Near,
NearTestnet,
Optimism,
OptimismSepolia,
Origyn,
Plume,
PlumeSepolia,
Polkadot,
Polygon,
PolygonAmoy,
Polymesh,
PolymeshTestnet,
Race,
RaceSepolia,
SeiAtlantic2,
SeiPacific1,
Solana,
SolanaDevnet,
Stellar,
StellarTestnet,
Sui,
SuiTestnet,
Tsc,
TscTestnet1,
Tezos,
TezosGhostnet,
Ton,
TonTestnet,
Tron,
TronNile,
Westend,
XrpLedger,
XrpLedgerTestnet
blockchainKind
enum<string>
Available options:
Algorand,
Aptos,
Bitcoin,
BitcoinCash,
Canton,
Cardano,
Cosmos,
Evm,
Hedera,
Icp,
Iota,
Kadena,
Kaspa,
Near,
Polymesh,
Solana,
Stellar,
Substrate,
Sui,
Tezos,
Ton,
Tron,
Xrpl
externalId
string

A unique ID from your system. It can be leveraged to be used as an idempotency key (read more here).

Required string length: 1 - 50

Response

200 - application/json

Success

id
string
required
keyId
string
required
requester
object
required
requestBody
object
required

All cryptographic scheme support hash signing. Different blockchains will apply different hash functions to compute the hash.

  • Hash
  • Message
  • EIP-7702 Authorization
  • Transaction
  • EIP-712 TypedData
  • PSBT
  • BIP-322
  • PactCommand
  • SignDocDirect
  • SignerPayload
  • CIP-8
status
enum<string>
required
Available options:
Pending,
Executing,
Signed,
Confirmed,
Failed,
Rejected
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,
Hedera,
HederaTestnet,
Ink,
InkSepolia,
InternetComputer,
Ion,
IonTestnet,
Iota,
IotaTestnet,
KadenaTestnet4,
Kadena,
Kaspa,
Kusama,
Litecoin,
Near,
NearTestnet,
Optimism,
OptimismSepolia,
Origyn,
Plume,
PlumeSepolia,
Polkadot,
Polygon,
PolygonAmoy,
Polymesh,
PolymeshTestnet,
Race,
RaceSepolia,
SeiAtlantic2,
SeiPacific1,
Solana,
SolanaDevnet,
Stellar,
StellarTestnet,
Sui,
SuiTestnet,
Tsc,
TscTestnet1,
Tezos,
TezosGhostnet,
Ton,
TonTestnet,
Tron,
TronNile,
Westend,
XrpLedger,
XrpLedgerTestnet
dateRequested
string
required
walletId
string
required
reason
string
signature
object
signatures
object[]
signedData
string
txHash
string
fee
string
approvalId
string
datePolicyResolved
string
dateSigned
string
dateConfirmed
string
externalId
string
I