- Migrate to another provider — move a key to a different custody solution. See also importing keys for the reverse direction.
- Disaster recovery backup — hold an independent, point-in-time copy so you can keep operating if DFNS is unavailable. See manual key backup for how this compares to Layer 4.
Export a key
The export ceremony needs connectivity to the DFNS API — it is the one unavoidable online step. Everything you do with the key afterwards should stay offline. Requirements:- Export activated for your organization (contact our ).
- A service account or user with the
Keys:Exportpermission, and its signing key pair. Export requires a user action signature, which the SDK produces with this key. - The
keyIdof the key to export (find it on the wallet in the dashboard or via List Wallets). - A trusted, isolated machine with Node.js and the export SDK example, which uses
@dfns/sdk-keyexport-utils-nodejs.
1
Run the export ceremony
The SDK generates an ephemeral encryption key pair, calls Export Key, and reconstitutes the private key locally — DFNS never handles a plaintext key (details).See the export SDK example for the complete, runnable program.
2
Secure the recovered key
Disconnect the machine from the network. Move the key to encrypted, offline storage — cold storage, an HSM, or a hardware-encrypted medium — with tightly restricted access, then securely erase every plaintext copy from the ceremony machine.Exporting does not affect the wallet in DFNS: it keeps signing normally and is flagged as exported. Nothing changes on-chain, and no funds move until you sign with the exported key.
[Optional] Verify the exported key
Confirm the exported key controls the wallet by signing with it — the same operation you would perform to use the key elsewhere. Signing stays on the offline machine; only the signed transaction crosses to an online machine to broadcast, so the private key never goes online. Requirements:- Offline machine holding the exported key.
- Online machine to broadcast the signed transaction.
- Removable media (e.g. an SD card or a USB drive) to move files between the two.
- Foundry’s
caston both machines. Copy the binary to the offline machine from a verified download rather than installing over the network.
1
Collect transaction parameters (online)
On the online machine, note the values the offline signer needs: the address’s current nonce, a gas price, and the chain ID (Sepolia is
11155111). Fund the address with a little Sepolia test ETH from a public faucet — a zero-value transaction still needs gas. Carry these values to the offline machine.2
Derive the address and sign (offline)
On the offline machine, take the exported key’s hex value for the secp256k1 curve (an Ethereum key) and prefix it with Build and sign the transaction offline. This prints a signed raw transaction hex and broadcasts nothing:Copy the signed raw transaction hex onto removable media. It contains no private key, so it is safe to move to an online machine.
0x.Derive the address and confirm it matches the one you funded:3
Broadcast the signed transaction (online)
On the online machine, broadcast the signed transaction from Etherscan’s Broadcast Transaction page, or from any machine with an RPC endpoint:A returned transaction hash confirms the exported key signs correctly.