Admin Login

Create, Sign and Broadcast Transactions

🌨️ Find out how to do a transaction with Cold Wallet.

Overview

A cold (offline) wallet follows a secure process for signing and sending transactions. An unsigned transaction is first crafted using the hot (online) wallet and then signed offline using a secure key. The signed transaction is sent back to the online wallet for additional verification and broadcast. This keeps sensitive keys offline, lowering the risk of unauthorized access and helping meet security rules.

The cold wallet uses two separate MPC nodes, each providing part of the signature. These nodes are stored in two different air-gapped cold wallets for extra protection. Even if one cold wallet device is compromised, a transaction still can’t be fully signed.

📘

Note:

Remember that Hot (online) wallet and Cold (offline) wallet are separate entities. To create a transaction in a Cold wallet, ensure you have paired the hot and cold wallet. If not, follow the steps here to pair both wallets.

Transacting with a Cold Wallet

---
config:
  themeVariables:
    noteBkgColor: '#9370DB'
    noteTextColor: '#ffffff'
    noteBorderColor: '#4B0082'
  layout: dagre
  look: neo
  theme: redux
---
flowchart LR
 subgraph HOT["Online (hot)<br>wallet infrastructure"]
    direction TB
        API_HOT["Wallet Service API"]
        ORCH["Orchestrator"]
        PN["MPC Policy node(s)"]
  end
 subgraph COLD_R["Air-gapped cold node 2"]
        COLD2["MPC Cold node 2"]
  end
 subgraph COLD_L["Air-gapped cold node 1"]
        COLD1["MPC Cold node 1"]
  end
    API_HOT --- ORCH
    CLIENT["Wallet Client"] -- "1. Submit transaction intent" --> API_HOT
    APPROVE["Approver(s)"] <-- "2. Policy evaluation<br>&amp; approval" --> API_HOT
    ORCH <-- "3. Create batch &amp;<br>consume presignatures" --> PN
    API_HOT -. "4a. Download batch" .-> COLD_OP1["🧑‍💼 Cold Operator 1"]
    API_HOT -. "4b. Download batch" .-> COLD_OP2["🧑‍💼 Cold Operator 2"]
    COLD_OP1 -. "5a. Upload batch<br>&amp; sign" .-> COLD1
    COLD_OP2 -. "5b. Upload batch<br>&amp; sign" .-> COLD2
    COLD1 -. "6a. Export partial sigs" .-> COLD_OP1
    COLD2 -. "6b. Export partial sigs" .-> COLD_OP2
    COLD_OP1 -. "7a. Upload partial sigs" .-> API_HOT
    COLD_OP2 -. "7b. Upload partial sigs" .-> API_HOT
    ORCH <-- "8. Combine partials<br>&amp; verify signatures" --> PN

    style PN fill:#FFCDD2
    style COLD2 fill:#BBDEFB
    style COLD1 fill:#BBDEFB

Follow the steps below to create a transaction with the Cold wallet:

  1. To create a transaction in a Cold wallet, ensure you have paired the hot and cold wallet. If not, follow the steps here to pair both wallets.
  2. Navigate to the hot wallet, and click the Accounts tab.
  1. Click the New Account button.
  1. Enter the account name and enable the Cold Storage feature.
  1. Click the newly created cold wallet account.
  2. Click the Add Asset button and select the asset you want to add to the account.
  1. Click the Transfer Funds button, and transfer some funds from another account to the cold wallet account.
  1. Approve the transactions using your Institutional Vault approver app.
📘

Note:

Due to the nature of the Solana network, cold transactions need to be approved within ~67s, or there is a high risk of failure. Blockdaemon is working on a potential enhancement to improve this network limitation.

  1. After that, follow the same steps as above and transfer some funds from a cold wallet account to a hot wallet account.
  1. Approve the transactions using your Institutional Vault approver app.
  2. Click the Transactions tab, and select the Cold Signing tab.
  1. Click the Export Batch button.
  2. Navigate to your Cold wallet app.
  3. Click the Transactions tab, and click the Import button.
  1. Upload the transaction batch JSON file that you have downloaded from the Hot Wallet app.
  1. After that, click the Sign button and click Sign to confirm the signing operation.
  1. Click the Export button.
  1. Navigate back to your hot wallet app.
  2. Under the Cold Signing tab, click the Accept Batch.
  1. Upload the file you downloaded from the Cold wallet app and click Accept Batch.
  1. Click the History to see the transaction details. The transaction status should be changed to broadcasting > completed.

🗣️We Are Here to Help!

Please contact us via email or support chat if you encounter an issue, bug, or need assistance. Don't forget to include any relevant details about the problem. To request a wallet form and Institutional Vault Approver form, please click here or contact our sales team.