ADA Staking via Fireblocks Raw Signing

Use the official fireblocks python scripts to manage your Cardano stake

Resources:

Fireblocks ADA Staking Scripts: https://github.com/fireblocks/ada_staking

Adding stake to an existing position

In order to add stake to an existing position, simply send ADA to your wallet address and it will be added to your staked balance. Any balance added in this way will be subject to the activation period described in Step 5

Step 1 - Environment + Fireblocks API key setup

📘

If you are already staking ADA via fireblocks

You can skip to step 4 to change your existing delegation to Pier Two

  • Create a Fireblocks API user by following this guide

    • you will need a copy of your Fireblocks secret (.key) file saved on your computer since the python script requires access to it
  • Fund an ADA vault in Fireblocks with only a permanent address

    • Attempting to stake from a Fireblocks vault with any address(es) other than the permanent address will result in the script exiting early with an error
    • Your Cardano vault addresses list should resemble the below screenshot

    Note that there are no additional ADA addresses

  • Clone the Fireblocks ADA python staking repo

  • Update these two lines in staking.py with the file path to your .key file and your fireblocks API key (remove the < and > characters)

    apiSecret = open("<your_api_secret_path>", 'r').read()
    apiKey = "<your_api_key>"

Step 2 - Determine staking parameters + script inputs

  • Reach out to us to get a Pier Two Cardano staking pool id

  • Obtain a Blockfrost API key (you can create one free or use ours)

  • Get the ID of your funded ADA Vault, this can be found in the URL when viewing the vault in the Fireblocks UI

    This vault has ID 5 (console.fireblocks.io/v2/accounts/vault/5)

Step 3 - Run the staking script to register your stake key

🚧

First time stakers only

This is only required the first time you stake with ANY Validator. If you are already staking, you can skip to step 4

  • run the python script with the following command, adding in your actual values for the vault id, staking pool id and blockfrost api key. This will enable staking and enable from your Cardano address.
    • python3 staking.py -v <VAULT_ACCOUNT_ID> -k <BLOCKFROST_API_KEY> -n mainnet register

Step 4 - Run the staking script to delegate to Pier Two

📘

Before you do this

This step will fail if you have not previously registered your stake key with the Cardano network. If you are staking for the first time, please ensure you have completed step 3 before running this command.

  • run the python script with the following command, adding in your actual values for the vault id, staking pool id and blockfrost api key.
    • python3 staking.py -v <VAULT_ACCOUNT_ID> -k <BLOCKFROST_API_KEY> -n mainnet delegate -p <PIER_TWO_POOL_ID_HASH>

Step 5 - Wait for your stake to activate and earn rewards

In Cardano, time is split up into Epochs where each Epoch is 5 days in duration. The following timeline dictates how long it will take to start earning rewards on your stake.

Assuming you registered and delegated at epoch N:

  • At Epoch N + 1, your staking balance is included in a snapshot
  • At Epoch N + 2, your stake activates
  • At Epoch N + 3, your stake begins earning rewards
  • At Epoch N + 4, your staking rewards are paid to your wallet automatically
  • After this initial activation period, you will automatically receive staking rewards to your wallet every Epoch

👍

No disruption to your rewards when changing delegation

The above timeline applies to new staking addresses. For an existing stake that is being re-delegated to Pier Two, there will be no disruption to your rewards.

You will continue to earn rewards from your old validator pool until epoch N+2, and the last payout of rewards from the old pool will occur in epoch N+3.

You will begin earning rewards from Pier Two in N+3 and will be reflected in your automatic rewards payouts from epoch N+4 onwards.