Flow Overview

At a high level

Click to expand

Click to expand

Requests Flow

Initialize Staking Flow

To start the aggregated staking process, you'll need to create a new flow. This can be done by sending a POST request to the endpoint/api/v1/flows.

URL

https://eth-slate.datahub.figment.io/api/v1/flows

Request

  • flowobject
    • network_code* — string Network this flow operates on (ethereum).
    • chain_code* — string Chain this flow operates on (mainnet, goerli or holesky).
    • operation* — string The operation to perform (aggregated_staking).
{
  "flow": {
    "network_code": "ethereum",
    "chain_code": "holesky",
    "operation": "aggregated_staking"
  }
}

Response

  • idstring ID of the newly created flow.
  • operationstring The Staking API operation being performed by this flow (aggregated_staking).
  • statestring The current state of the flow (initialized).
  • actionsarray An array of action objects containing the name, inputs, and validations for advancing the flow with each action.
    • assign_staking_data — Use this action to generate an aggregated deposit transaction to stake your ETH. The assign_staking_data action indicates eleven fields for data collection.
  • data: Data specific to this flow.
    • funding_account_address — The wallet holding the ETH to be staked.
    • withdrawal_address — The withdrawal address into which you want to receive your rewards and principal after withdrawal.
    • amount — The amount of ETH you want to stake. Multiple of 32 less than or equal to 3200.
    • depositsarray of validator deposit data:
      • validator_pub_key — The public key of the validator to which the ETH will be deposited.
      • withdrawal_credentials — The withdrawal address for the given validator.
      • signature — A BLS proof of possession, i.e. a proof that the private key corresponding to the validator_pub_key is known by the signer.
      • deposit_data_root — Uniquely identifies the set of deposits made so far.
      • genesis_fork_version — The fork version of Ethereum you used as an input to create signature.
    • gas_limit — Adjust the gas limit.
    • gas_price — Adjust the gas price.
    • estimated_active_at : string A high fidelity estimation of when a given validator will become active.
{
  "id": "7d0c5354-72f0-4bac-bc29-b7384d0321a8",
  "operation": "aggregated_staking",
  "state": "initialized",
  "actions": [
    {
      "name": "assign_staking_data",
      "inputs": [
        {
          "name": "funding_account_address",
          "display": "Funding Account Address",
          "description": "",
          "type": "string",
          "validations": [
            {
              "type": "presence",
              "options": {}
            },
            {
              "type": "hex",
              "options": {}
            }
          ],
          "array": false,
          "default_value": null
        },
        {
          "name": "deposits",
          "display": "Deposits",
          "description": "",
          "type": "array_of_validator_deposit_data",
          "validations": [
            {
              "type": "array",
              "options": {
                "allow_empty": true,
                "allow_duplicates": false
              }
            },
            {
              "type": "length",
              "options": {
                "maximum": 250,
                "message": "cannot fund more than 250 validators in single transaction"
              }
            },
            {
              "type": "array_of_objects",
              "options": {
                "merge_array_errors": true
              }
            }
          ],
          "array": true,
          "default_value": null,
          "element_type": "validator_deposit_data",
          "inputs": [
            {
              "name": "validator_pub_key",
              "display": "Validator Pub Key",
              "description": "",
              "type": "hex",
              "validations": [
                {
                  "type": "presence",
                  "options": {}
                },
                {
                  "type": "hex",
                  "options": {}
                }
              ],
              "array": false,
              "default_value": null
            },
            {
              "name": "withdrawal_credentials",
              "display": "Withdrawal Credentials",
              "description": "",
              "type": "hex",
              "validations": [
                {
                  "type": "presence",
                  "options": {}
                },
                {
                  "type": "hex",
                  "options": {}
                }
              ],
              "array": false,
              "default_value": null
            },
            {
              "name": "signature",
              "display": "Signature",
              "description": "",
              "type": "hex",
              "validations": [
                {
                  "type": "presence",
                  "options": {}
                },
                {
                  "type": "hex",
                  "options": {}
                }
              ],
              "array": false,
              "default_value": null
            },
            {
              "name": "deposit_data_root",
              "display": "Deposit Data Root",
              "description": "",
              "type": "hex",
              "validations": [
                {
                  "type": "presence",
                  "options": {}
                },
                {
                  "type": "hex",
                  "options": {}
                }
              ],
              "array": false,
              "default_value": null
            },
            {
              "name": "genesis_fork_version",
              "display": "Genesis Fork Version",
              "description": "",
              "type": "hex",
              "validations": [
                {
                  "type": "acceptable_genesis_fork_version",
                  "options": {}
                }
              ],
              "array": false,
              "default_value": null
            }
          ]
        },
        {
          "name": "gas_limit",
          "display": "Gas Limit",
          "description": "",
          "type": "string",
          "validations": [
            {
              "type": "numericality",
              "options": {
                "allow_blank": true,
                "only_integer": true,
                "greater_than": 0
              }
            }
          ],
          "array": false,
          "default_value": null
        },
        {
          "name": "gas_price",
          "display": "Gas Price",
          "description": "",
          "type": "string",
          "validations": [
            {
              "type": "numericality",
              "options": {
                "allow_blank": true,
                "greater_than": 0
              }
            },
            {
              "type": "precision",
              "options": {
                "allow_blank": true,
                "max": 9
              }
            }
          ],
          "array": false,
          "default_value": null
        },
        {
          "name": "withdrawal_address",
          "display": "Withdrawal Address",
          "description": "",
          "type": "string",
          "validations": [],
          "array": false,
          "default_value": null
        },
        {
          "name": "amount",
          "display": "Amount",
          "description": "",
          "type": "decimal",
          "validations": [],
          "array": false,
          "default_value": null
        }
      ]
    }
  ],
  "data": {
    "deposits": [],
    "funding_account_address": null,
    "withdrawal_address": null,
    "amount": null,
    "validators_to_provision": null,
    "gas_price": null,
    "gas_limit": null,
    "aggregated_deposit_transaction": null
    "estimated_active_at": null,
    "uses_onchain_billing": null,
    "region": null
  },
  "network_code": "ethereum",
  "chain_code": "holesky",
  "created_at": "2023-04-06T06:37:06.055Z",
  "updated_at": "2023-04-06T06:37:06.055Z"
}

Submit Staking Data

Once you have collected all the required inputs, proceed to the next step by sending a PUT request to /api/v1/flows/[:flow_id]/next.

URL

https://eth-slate.datahub.figment.io/api/v1/flows/[:flow_id]/next

Request

  • name* : assign_staking_data
  • inputs* : object
    • funding_account_address* : string The wallet holding the ETH to be staked.
    • withdrawal_address* : hex The withdrawal address into which you want to receive your rewards and principal after withdrawal.
    • amount* : number The amount of ETH you want to stake. Multiple of 32 less than or equal to 3200.
    • gas_limit : Adjust the gas limit
    • gas_price : Adjust the gas price
{
  "name": "assign_staking_data",
  "inputs": {
    "funding_account_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "withdrawal_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "amount": 32
  }
}

Response

The aggregated staking flow ensures sufficient provision of validators to stake your full amount, even if your organization hasn't pre-provisioned enough validators.

🚧

Warning

This process operates asynchronously and may require awaiting a webhook indicating successful provisioning or polling before proceeding.

👍

Best Practice

To monitor progress effectively, consider polling the flow until it reaches the state of aggregated_deposit_tx_signature. This should not take longer than 2.5 minutes.

This allows you to handle the subsequent steps with greater efficiency and accuracy.

Use the GET /flows/:id endpoint to poll the flow's state

Therefore, two possible states may be returned:

  1. awaiting_provision: The Staking API is in communication with internal systems to provision validators for your organization.
  2. aggregated_deposit_tx_signature: Your organization has enough validators available, allowing you to proceed to transaction signing. This can be due to preprovisioned validators or the Staking API provisioning validators for you and moving out of the awaiting_provision state.

Notes

Within the data object, the field estimated_active_at provides a high fidelity estimation of when all validators funded in this flow will be active.

{
  "id": "7d0c5354-72f0-4bac-bc29-b7384d0321a8",
  "operation": "aggregated_staking",
  "state": "awaiting_provision",
  "actions": [
    {
      "name": "wait",
      "estimated_state_change_at": "2023-04-06T06:44:08.345Z",
      "inputs": []
    }
  ],
  "data": {
    "deposits": [],
    "funding_account_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "withdrawal_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "amount": "32.0",
    "validators_to_provision": 1,
    "gas_price": null,
    "gas_limit": null,
    "aggregated_deposit_transaction": null,
    "estimated_active_at": "2023-04-08T12:10:21.412Z",
    "uses_onchain_billing": null,
    "region": null
  },
  "network_code": "ethereum",
  "chain_code": "holesky",
  "created_at": "2023-04-06T06:37:06.055Z",
  "updated_at": "2023-04-06T06:39:07.287Z"
}

Once the flow state is aggregated_deposit_tx_signature, you'll see the serialized transaction you need to sign in the data.aggregated_deposit_transaction object - either raw (the serialized transaction object) or signing_payload (the payload cryptographically derived from raw, required for Fireblocks) depending on your custody solution.

{
  "id": "7d0c5354-72f0-4bac-bc29-b7384d0321a8",
  "operation": "aggregated_staking",
  "state": "awaiting_provision",
  "actions": [
    {
      "name": "wait",
      "estimated_state_change_at": "2023-04-06T06:44:08.345Z",
      "inputs": []
    }
  ],
  "data": {
    "deposits": [
      {
        "validator_pub_key": "0xa04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643",
        "withdrawal_credentials": "0x010000000000000000000000b458d87418e6020260c92e18b11b64f1ed6fff30",
        "signature": "0xb39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c9",
        "deposit_data_root": "0x0fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08",
        "genesis_fork_version": "0x00001020"
      }
    ],
    "funding_account_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "withdrawal_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "amount": "32.0",
    "validators_to_provision": 1,
    "gas_price": null,
    "gas_limit": null,
    "aggregated_deposit_transaction": {
      "raw": "0x02f902d705018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c0",
      "signing_payload": "0xadfbe948da3c2c402b9d4316d61077b9aa2a6167e0e56652e4d0005becdcf273",
      "signed": null,
      "hash": null,
      "status": null,
      "error": null,
      "signatures": null,
      "block_time": null,
      "block_number": null
    },
    "estimated_active_at": "2023-04-08T12:10:21.412Z",
    "uses_onchain_billing": null,
    "region": null
  },
  "network_code": "ethereum",
  "chain_code": "holesky",
  "created_at": "2023-04-06T06:37:06.055Z",
  "updated_at": "2023-04-06T06:39:07.287Z"
}

Sign Staking Transaction

👍

Sign transaction payload

When the flow reaches aggregated_deposit_tx_signature, you will find an unsigned transaction payload that is ready to be signed for staking with your organization's validators.

Furthermore, within the state aggregated_deposit_tx_signature, you have the option to take one of three potential actions:

  1. refresh_aggregated_deposit_tx: If you require an updated version of the transaction payload, usually when the transaction nonce of your funding_account has increased.
  2. sign_aggregated_deposit_tx: You can proceed by submitting a signed transaction payload or an array of signatures. For detailed instructions on signing transactions, please refer to the guides Signing Transactions with Figment's npm Package and Signing Transactions with the Fireblocks API for details.
  3. confirm_aggregated_deposit_tx_by_hash: Another option is to submit a previously completed transaction hash to advance the flow. For more information on this method, please consult the guide Advance Flows Using a Transaction Hash.

Broadcast Staking Transaction

🚧

Warning

Before broadcasting the transaction, you must sign the transaction_payload you received in the previous step.

After successfully signing the transaction, you have two methods to proceed. Both methods involve sending a PUT request to the following URL: https://eth-slate.datahub.figment.io/api/v1/flows/[:flow_id]/next. Choose the appropriate method based on your signing approach.

Method 1 - Submitting Transaction Payload:

If you signed the transaction and have the transaction payload available, use the following request details:

API Endpoint

https://eth-slate.datahub.figment.io/api/v1/flows/[:flow_id]/next

Request Details

  • name*: sign_aggregated_deposit_tx
  • inputs*: object
    • transaction_payload*: The signed transaction payload obtained from the previous step's response.
{
  "name": "sign_aggregated_deposit_tx",
  "inputs": {
    "transaction_payload": "0x02f9031b05028459682f0085293dc82d66830116fa943e30fc2cc800af86e88b69d32d9daf7eccb3a5208901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000309855d353352eefb56929801e0d376cf6e5973d18c39424fe42c829cb62a6ff17648e6fdbf0c7259d25d09e17769cf27600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020010000000000000000000000b458d87418e6020260c92e18b11b64f1ed6fff3000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006094c7e3414664f4dbd1cc8d326de278ee0e4fcf4bc74fb1ea74216bab8c644ddc4fd1ed59dca7db60959f81d4dd5dd8271175113fbc0decb19486f885a5e2bc440a5b3b33184be66dd069290ebe7f47024d2799ea7b1c1eb829cc018b8334fdb00000000000000000000000000000000000000000000000000000000000000001348de8001f6b5ce424f93ca0ca090ad1986ee5969991fa02af345980e874ade6c001a0e65fa70c0c8224d19a18fffaabd4f1d76773d6e86aa1b95e416d10b2fe799738a07c8430f7f6e566e0647fd2295c0ba1b2e0d8f7cd212b7bae9aa0365f69d590a9"
  }
}

Method 2 - Submitting Signatures:

If your signing keys are managed by a custodial solution (e.g., Fireblocks), you can use an alternative method by submitting an array of object containing the signatures. Here are the request details:

API Endpoint

https://eth-slate.datahub.figment.io/api/v1/flows/[:flow_id]/next

Request Details

  • name*: sign_aggregated_deposit_tx
  • inputs*: object
    • signatures: An array of object representing the signatures. This method is useful when you don't send the transaction payload directly. For more information, refer to the guide Signing Transactions with the Fireblocks API.

Wether you opt for Method 1 or Method 2, the response will look like this:

Response

  • id : string ID of the flow.
  • operation : string The Staking API operation being performed by this flow.
  • state : string The current state of the flow.
    • aggregated_deposit_tx_broadcasting : Transaction broadcasting to the network.
    • activating : Transaction has been confirmed and stake is now activating.
    • active : Stake is active and earning rewards.
  • actions : array It includes the name & inputs of all next possible actions.
  • data : object Flow & transaction data.
    • estimated_active_at : string A high fidelity estimation of when a given validator will become active.
{
  "id": "7d0c5354-72f0-4bac-bc29-b7384d0321a8",
  "operation": "aggregated_staking",
  "state": "aggregated_deposit_tx_broadcasting",
  "actions": [
    {
      "name": "wait",
      "estimated_state_change_at": "2023-04-06T06:45:19.485Z",
      "inputs": []
    }
  ],
  "data": {
    "deposits": [
    	{
        "validator_pub_key": "0xa04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643",
        "withdrawal_credentials": "0x010000000000000000000000b458d87418e6020260c92e18b11b64f1ed6fff30",
        "signature": "0xb39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c9",
        "deposit_data_root": "0x0fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08",
        "genesis_fork_version": "0x00001020"
      }
    ],
    "funding_account_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "withdrawal_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "amount": "32.0",
    "validators_to_provision": 1,
    "gas_price": null,
    "gas_limit": null,
    "aggregated_deposit_transaction": {
      "raw": "0x02f902d705018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c0",
      "signing_payload": "0xadfbe948da3c2c402b9d4316d61077b9aa2a6167e0e56652e4d0005becdcf273",
      "signed": "0x02f9031a05018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c001a0f66f117bdf93b45612b0734e2a7ec752879caffa090e009d80b61b938e75d722a068c895d7c01625e2d610bea7fc195943ab0b16424f095286acde280b2ef13526",
      "hash": "0x8296ee05533cd7ae09eefaf2861ea9134f7a4dee1cdbcc3a40890300f51c09fb",
      status: null,
      error: null,
      signatures: [],
      block_time: null,
      block_number: null
    },
    "estimated_active_at": "2022-04-08T12:10:21.412Z",
    "uses_onchain_billing": null,
    "region": null
  },
  "network_code": "ethereum",
  "chain_code": "holesky",
  "created_at": "2023-04-06T06:37:06.055Z",
  "updated_at": "2023-04-06T06:44:18.777Z"
}

You can then poll the flow (see below) to wait for transaction confirmation to verify that your validator(s) are activating, at which point the flow state will be activating and you'll see the response below:

{
    "id": "7d0c5354-72f0-4bac-bc29-b7384d0321a8",
    "operation": "aggregated_staking",
    "state": "activating",
    "actions": [
        {
            "name": "wait",
            "estimated_state_change_at": "2023-11-03T17:28:22.428Z",
            "inputs": []
        }
    ],
    "data": {
        "deposits": [
            {
                "validator_pub_key": "0xa04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643",
                "withdrawal_credentials": "0x010000000000000000000000b458d87418e6020260c92e18b11b64f1ed6fff30",
                "signature": "0xb39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c9",
                "deposit_data_root": "0x0fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08",
                "genesis_fork_version": "0x00001020"
            }
        ],
        "funding_account_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
        "withdrawal_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
        "amount": "32.0",
        "validators_to_provision": 1,
        "gas_price": null,
        "gas_limit": null,
        "aggregated_deposit_transaction": {
            "raw": "0x02f902d705018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c0",
            "signing_payload": "0xadfbe948da3c2c402b9d4316d61077b9aa2a6167e0e56652e4d0005becdcf273",
            "signed": "0x02f9031a05018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c001a0f66f117bdf93b45612b0734e2a7ec752879caffa090e009d80b61b938e75d722a068c895d7c01625e2d610bea7fc195943ab0b16424f095286acde280b2ef13526",
            "hash": "0x8296ee05533cd7ae09eefaf2861ea9134f7a4dee1cdbcc3a40890300f51c09fb",
            "status": "confirmed",
            "error": null,
            "signatures": [],
            "block_time": "2023-11-03T03:49:00.000Z",
            "block_number": null
        },
        "estimated_active_at": "2023-11-03T17:28:22.428Z",
        "uses_onchain_billing": null,
        "region": null
    },
    "network_code": "ethereum",
    "chain_code": "goerli",
    "created_at": "2023-11-03T03:48:40.899Z",
    "updated_at": "2023-11-03T03:49:10.440Z"
}

Get Staking Flow

To get the current state of the existing flow, send a GET request to /api/v1/flows/[:flow_id] using the flow ID from the previous step.

URL

https://eth-slate.datahub.figment.io/api/v1/flows/[:flow_id]

Request

  • None

Response

  • id : string ID of the flow.
  • operation : string The Staking API operation being performed by this flow.
  • state : string The current state of the flow.
    • aggregated_deposit_tx_broadcasting : Transaction is broadcasting and not confirmed yet.
    • activating : The validator is in the activation queue and will join the active set.
    • active : The validator has successfully joined the active set.
    • Refer to the Ethereum Validator Lifecycle guide for more information.
  • actions : array It includes the name & inputs of all next possible actions.
  • data : object Flow & transaction data.
    • estimated_active_at : string A high fidelity estimation of when the validator will become active.
{
  "id": "7d0c5354-72f0-4bac-bc29-b7384d0321a8",
  "operation": "aggregated_staking",
  "state": "active",
  "actions": [],
  "data": {
    "deposits": [
    	{
        "validator_pub_key": "0xa04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643",
        "withdrawal_credentials": "0x010000000000000000000000b458d87418e6020260c92e18b11b64f1ed6fff30",
        "signature": "0xb39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c9",
        "deposit_data_root": "0x0fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08",
        "genesis_fork_version": "0x00001020"
      }
    ],
    "funding_account_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "withdrawal_address": "0xB458D87418e6020260C92e18b11b64F1ed6fFF30",
    "amount": "32.0",
    "validators_to_provision": 1,
    "gas_price": null,
    "gas_limit": null,
    "aggregated_deposit_transaction": {
      "raw": "0x02f902d705018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c0",
      "signing_payload": "0xadfbe948da3c2c402b9d4316d61077b9aa2a6167e0e56652e4d0005becdcf273",
      "signed": "0x02f9031a05018459682f008459682f0e83010fc19494a2da805867c962148d3832d9afc512034a62c58901bc16d674ec800000b902a44f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030a04ca4eaa29cebaef60c7505861ecd71b617e2c590b768cbc8ded11d48a530c06c3419b26ebc6f068dcd805bbca62643000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000003e6378828edf262a29e5f42a499fab71a671c2e5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060b39e5bf4359b8cf933b89c03157d4221eb81edca55c392b6e9ba1984d343389abc7f5041500851170b8e20d181f8e8f719e4f6a2c9c7fe9591f0873ae6a92a1a9aef193f2e2545a947d4373719223ff0b2b37cf28ba5c825d4773c2755e668c900000000000000000000000000000000000000000000000000000000000000010fbe24174cbfaaa8f85bc2bf47db2d9cc124d01ef3ad705d02b4d62b562f4a08c001a0f66f117bdf93b45612b0734e2a7ec752879caffa090e009d80b61b938e75d722a068c895d7c01625e2d610bea7fc195943ab0b16424f095286acde280b2ef13526",
      "hash": "0x8296ee05533cd7ae09eefaf2861ea9134f7a4dee1cdbcc3a40890300f51c09fb",
      status: null,
      error: null,
      signatures: [],
      block_time: null,
      block_number: null
    },
    "estimated_active_at": "2022-04-08T12:10:21.412Z",
    "uses_onchain_billing": null,
    "region": null
  },
  "network_code": "ethereum",
  "chain_code": "holesky",
  "created_at": "2023-04-06T06:37:06.055Z",
  "updated_at": "2023-04-06T22:44:54.133Z"
}