Skip to main content

Validators - Ethereum


Create Staking Position

Request creation of new staking position with the passed attributes.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/positions

Request

  • external_user_id* : string A customer user ID.
  • external_user_email* : string A customer email address.
  • withdrawal_address* : string An Ethereum address.
  • validators_count* : integer A number of validators.
  • eth2_network_name* : string A network name, denoting testnet (goerli) or mainnet (mainnet).

Response

  • success : boolean Returns true if the action was successful.

Webhook configuration

Users can be notified via webhook when a new staking position is created. Configure a webhook URL and a webhook API key under "Prime / ETH Staking" in the Prime Dashboard. The configured API key will be sent as an Authorization header.

Note

Validator API webhooks can only be configured from the Prime dashboard.

Webhook response format

{
  "action": "",
  "data": {
    "id": "",
    "withdrawal_address": "",
    "validators_count": 0
  }
}
  • action : string
  • data : object
    • id : string
    • withdrawal_address : string
    • validators_count : number
Request
Example Response
{
"success": true
}


Get Staking Positions

Returns a list of staking positions.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/positions

Request

  • withdrawal_address* : string A withdrawal address.
  • page[size] : integer The number of results to display, used for pagination.
  • page[number] : integer The number of pages to display.
  • fundable_positions_only : boolean Passing true will display only positions which can be funded.

Response

  • data : array
    • object : Each response object contains the following fields:
      • id : A unique identifier.
      • type : position.
      • attributes
        • id : A unique identifier.
        • name : A name.
        • eth1_withdrawal_address :An Ethereum address.
        • staked_amount : The amount of staked ETH.
        • validators_count : A number of validators.
        • created_at : Timestamp.
        • updated_at : Timestamp.
      • links : object Pagination links based on page[size] and page[number].
Request
Example Response
{
"data": [
{
"id": "18",
"type": "position",
"attributes": {
"id": 18,
"eth1_withdrawal_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
"staked_amount": 320,
"validators_count": 10,
"created_at": "2021-10-04T14:28:25.497Z",
"updated_at": "2022-10-17T14:40:10.589Z",
"name": null
}
},
{
"id": "20",
"type": "position",
"attributes": {
"id": 20,
"eth1_withdrawal_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
"staked_amount": 320,
"validators_count": 10,
"created_at": "2021-10-04T14:28:25.700Z",
"updated_at": "2022-10-17T14:40:10.578Z",
"name": null
}
},
{
"id": "77",
"type": "position",
"attributes": {
"id": 77,
"eth1_withdrawal_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
"staked_amount": 128,
"validators_count": 4,
"created_at": "2022-03-21T13:30:54.214Z",
"updated_at": "2022-10-17T14:40:10.618Z",
"name": null
}
}
],
"links": {
"self": "https://hubble.figment.io/api/v1/prime/eth2_staking/positions",
"current": "https://hubble.figment.io/api/v1/prime/eth2_staking/positions?page[number]=1"
}
}


Get Validators In Staking Position

Returns a list of validators for a given staking position.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/positions/{position_id}/validators

Request

  • position_id* : string A valid staking position ID.
  • include : string Accepted value: position
  • status_history : string If present, status change history will be included for each validator.
  • status : string Accepted value(s) are: funding_requested, deposited, pending_initialized, pending_queued, active_ongoing, active_exiting, active_slashed, exited_unslashed, exited_slashed, withdrawal_possible, withdrawal_done, provisioned.
  • page[size] : integer The number of results to display, used for pagination.
  • page[number] : integer The page to display.

Response

  • data : array of object
    • id : string A unique identifier.
    • type : validator.
    • attributes : object
      • id : number A unique identifier.
      • pubkey : string A public key.
        • name : string The position name.
        • withdrawal_credentials : string Valid withdrawal credentials.
        • amount : integer An amount of ETH staked on the validator, in Gwei (1 Gwei is 1e9 wei).
        • signature : string A valid signature.
        • deposit_data_root : string The deposit data.
        • deposit_message_root : string The deposit message.
        • deposit_cli_version : string The version of the CLI software used when making the deposit.
        • fork_version : string A fork version.
        • eth2_network_name : string A network name, denoting testnet (goerli) or mainnet (mainnet).
        • status - string : The positions current status. Refer to the Ethereum Validator Lifecycle guide for more information on possible values.
        • status_synced_at : string A timestamp indicating when the status was last synced.
        • figment_signature : string A base64 encoded signature of the validator's public key, signed by a private key maintained by Figment. Read more on the Signatures page.
        • fee_recipient_address : hex string The fee recipient address, equivalent to the withdrawal_address.
        • on_demand_exit_requested_at : string A timestamp representing the customer request to exit this validator, either through the Figment app or Staking API.
        • on_demand_exit_approved_at : string A timestamp representing the time at which the customer exit request was approved by Figment.
        • on_demand_exit_submitted_at : string A timestamp representing the time at which the validator's exit transaction was submitted to Ethereum's consensus layer.
        • on_demand_exit_request_id : string Equivalent to the Staking API flow ID for which the customer requested to exit this validator.
        • presigned_exit_transaction : string A pre-signed exit transaction encrypted with the public encryption key you've stored with Figment (contact us to store either a PGP or RSA key). Pre-signed exit transactions are refreshed daily at 6:30AM UTC for active validators which have a stored encryption key. For PGP-encrypted messages, the message in this response contains the Version with the date and epoch when the exit transaction was last refreshed. The Comment portion of the message contains the validator's public key. Last is the encrypted VoluntaryExit message for this validator. For RSA-encrypted messages, this field will only contain the encrypted VoluntaryExit message for this validator. Shown with the query parameter presigned_exit_transaction=true. View our guide for pre-signed exit transactions here.
    • status_history : array Details of the status history.
      • status : string A status.
      • changed_at : string A timestamp.
    • relationships : object
      • position : object
      • data : object
        • id : string A unique identifier.
        • type : "validator".
    • links : object Pagination links based on page[size] and page[number].
      • self : string
      • current : string
      • next : string
      • last : string
      • prev : string
    • included : array of object
      • id : string A unique identifier.
      • type : string The position type.
      • attributes : object
      • id : string A unique identifier.
      • name : string A name.
      • eth1_withdrawal_address : string An Ethereum address.
      • staked_amount : integer An amount of staked ETH.
      • validators_count : integer A number of validators.
      • created_at : string A timestamp.
      • updated_at : string A timestamp.
Request
Example Response
{
"data": [
{
"id": "31",
"type": "validator",
"attributes": {
"id": 31,
"pubkey": "d1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb",
"name": null,
"withdrawal_credentials": "010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1",
"amount": 32000000000,
"signature": "aab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49",
"deposit_data_root": "b2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422",
"deposit_message_root": "026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44",
"deposit_cli_version": "1.2.0",
"fork_version": "00000000",
"eth2_network_name": "goerli",
"status": "funding_requested",
"status_synced_at": "2023-01-14T16:00:14.459Z",
"figment_signature": "ZDFlZjhkNDY4ZWY1M2Q4MjM2OGQyMDI2ZTMyMWFiMmM2ZDQ0ZjQ0YzMzYjdiOWYyMjM2OWJmNmRjZjM3ZmIwMjA4ZjgyZGQ2YjQ4NTMyNWNlMWJiZjVhZWM3YWQ0NWJi",
"fee_recipient_address": "0x781462762B706AA7c1DA71FBA1a545724928b81f",
"on_demand_exit_requested_at": null,
"on_demand_exit_approved_at": null,
"on_demand_exit_submitted_at": null,
"on_demand_exit_request_id": null,
"presigned_exit_transaction": "-----BEGIN PGP MESSAGE-----\nVersion: 2023-03-03 (159679)\nComment: 0xf27394bf199c58623206923c26fd186fd1e91302d09f22aaf40c053d8725364b05199bebe91d3a6737aebe8cc5a1b202\n\nwV7DhAgK6qzUbbYSAQdA069SH+2v3hkzd/REedn8/1k2eVK0GGV4r4lzGf5Jg3Ew\n/cFSwaXhaBgfinFXMCmYJtYZF06oZcH4XzZm3IPeXktS6wfScogE+W/eapX0nHlT\n0sF6Bb/uJAExeOtRurwgqDkc/D+g+BioSsg2XQ6O9a6SUj7bb2plX2E9JPhSMhPY\nzLXA4cB8F9IjpSv/Ofhlbid9+cWnZLDHrU69Q0nCcTwZTQZbOoOi7Mj04pKEHux1\nvaalZ4O8N5ptJwWygB7NMxZAkosruPURQ4HS2EaFjr5Fjle6+pfYN1y39hOvsoQe\nT3E1/4DbfmFbDNjBqwjAJLkmEBu18AKgxJtEjQaCoeF1Q/WTIA8JBX3yy14AZI3q\noYZ5gd5QdVo24aoYrm75rQO0GfZqvU5B/kKezrA+eFngO79bgppyjIacItNaHEaD\nkQfO+6SE8A0mQXxQr0IqJiiNhrG8tPhDcLZcvKRXPoGIkQcFNCPiOehFsB6drhP6\n7v/P81fj63df8fk6FBkiDHIdros8xj9PGHbYNrCNsw==\n=DiMO\n-----END PGP MESSAGE-----"
},
"relationships": {
"position": {
"data": {
"id": "13",
"type": "position"
}
}
}
}
],
"links": {
"self": "https://hubble.figment.io/api/v1/prime/eth2_staking/positions/13/validators",
"current": "https://hubble.figment.io/api/v1/prime/eth2_staking/positions/13/validators?page[number]=1"
}
}


Create Funding Transactions

Returns an unsigned deposit transaction for the requested number of validators. If no validators are available, the raw_transaction will be null.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/funding_transactions

Request

  • funding_address : string An Ethereum funding address.
  • withdrawal_address : string An Ethereum withdrawal address.
  • validators_count : integer A number of validators.
  • eth2_network_name : string A network name, denoting testnet (goerli) or mainnet (mainnet).

Response

  • data : array
    • object
      • id : string A unique identifier.
      • type : validator.
      • attributes : object
        • id : number A unique identifier.
        • pubkey : string A public key.
        • name : string The position name.
        • withdrawal_credentials : string Valid withdrawal credentials.
        • amount : integer An amount of ETH.
        • signature : string A valid signature.
        • deposit_data_root : string The deposit data.
        • deposit_message_root : string The deposit message.
        • fork_version : string A fork version.
        • eth2_network_name : string A network name, denoting testnet (goerli) or mainnet (mainnet).
        • status : string The positions current status.
        • deposit_cli_version : string The version of the CLI software used when making the deposit.
        • status_synced_at : string A timestamp indicating when the status was last synced.
        • figment_signature : string A base64 encoded signature of the validator's public key, signed by a private key maintained by Figment. Read more on the Signatures page.
        • on_demand_exit_requested_at : string A timestamp representing the customer request to exit this validator, either through the Figment app or Staking API.
        • on_demand_exit_approved_at : string A timestamp representing the time at which the customer exit request was approved by Figment.
        • on_demand_exit_submitted_at : string A timestamp representing the time at which the validator's exit transaction was submitted to Ethereum's consensus layer.
        • on_demand_exit_request_id : string Equivalent to the Staking API flow ID for which the customer requested to exit this validator.
        • status_history : array Details of the status history.
          • status : string A status.
          • changed_at : string A timestamp.
      • relationships : object
        • position : object
          • data : object
            • id : string A unique identifier.
            • type : string The position type.
  • meta : object Metadata of the transaction.
    • raw_transaction : object
      • from : string
      • to : string
      • value : string
      • data : string
  • links : object Pagination links based on page[size] and page[number].
    • self : string
    • current : string
    • next : string
    • last : string
    • prev : string
Request
Example Response
{
"data": [
{
"id": "32",
"type": "validator",
"attributes": {
"id": 32,
"pubkey": "a552d513f74714fec978a68a4402f64a77943933af0d168d9f5e8417b8f8f31640f1fcd60adae005aa1f24edeccca885",
"name": null,
"withdrawal_credentials": "0100000000000000000000007362cc429fd2e2abb3f1217c660967e6ed52b594",
"amount": 32000000000,
"signature": "823c85b951347fb67a6bd1f71eef1e0d79b2b779312dfdd61a6b52229f7e1cec7532919c0a1b1746720805e92158f44c115179d3e20e366b6d3367442798f833bc7a39b09a95082065696152f1c60f04715053db32474a2e7929e9d821e725ed",
"deposit_data_root": "d3342f720eee71d24f5060def39ed782132b502795bf5adb7c0feb0873ad6812",
"deposit_message_root": "64618704c7cfb84f588df241c0f56924da4c4556bd349964d6720b4424141d35",
"deposit_cli_version": "2.5.0",
"fork_version": "00001020",
"eth2_network_name": "goerli",
"status": "funding_requested",
"status_synced_at": "2023-05-17T14:50:39.938Z",
"figment_signature": "308188024200d21fd6d8cd7bfb79d906243cbb07f113ac40fd701a6b9eb10e3211de3734b6e3169462a12d6081db4799eec45a9d3c3dc1dc2aab0e5d161b5a15372279d7013636024201189e2b94c5ebe2eb5b009c1b267b23edc6e1883ce8aebf305b9e5732ff0f0ecaf02c718de9c80d27375be9105161274e4102f81ac01e5b85e9900af540870673f3",
"fee_recipient_address": "0x7362cC429Fd2e2abB3F1217c660967E6Ed52B594",
"on_demand_exit_requested_at": null,
"on_demand_exit_approved_at": null,
"on_demand_exit_submitted_at": null,
"on_demand_exit_request_id": null
},
"relationships": {
"position": {
"data": {
"id": "2927",
"type": "position"
}
}
}
}
],
"meta": {
"raw_transaction": {
"from": "0x7362cC429Fd2e2abB3F1217c660967E6Ed52B594",
"to": "0x3e30Fc2Cc800Af86e88B69d32D9DaF7Eccb3A520",
"value": "32000000000000000000",
"data": "0x4f498c730000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030b662d513f74714fec978a68a4402f64a77943933af0d168d9f5e8417b8f8f31640f1fcd60adae005aa1f24edeccca885000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200100000000000000000000007362cc429fd2e2abb3f1217c660967e6ed52b594000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060823c85b951347fb67a6bd1f71eef1e0d79b2b779312dfdd61a6b52229f7e1cec7532919c0a1b1746720805e92158f44c115179d3e20e366b6d3367442798f833bc7a39b09a95082065696152f1c60f04715053db32474a2e7929e9d821e725ed0000000000000000000000000000000000000000000000000000000000000001d3342f720eee71d24f5060def39ed782132b502795bf5adb7c0feb0873ad6812"
}
},
"links": {
"self": "https://hubble.figment.io/api/v1/prime/eth2_staking/funding_transactions",
"current": "https://hubble.figment.io/api/v1/prime/eth2_staking/funding_transactions?eth2_network_name=goerli&funding_address=0x7362cC429Fd2e2abB3F1217c660967E6Ed52B594&funding_transaction[eth2_network_name]=goerli&funding_transaction[funding_address]=0x7362cC429Fd2e2abB3F1217c660967E6Ed52B594&funding_transaction[validators_count]=1&funding_transaction[withdrawal_address]=0x7362cC429Fd2e2abB3F1217c660967E6Ed52B594&page[number]=1&validators_count=1&withdrawal_address=0x7362cC429Fd2e2abB3F1217c660967E6Ed52B594"
}
}


Provision Validators

Provision a new validator with passed attributes.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/provision

Request

  • withdrawal_address*: string An Ethereum address.
  • validators_count* : integer A number of validators.
  • eth2_network_name* : string A network name, denoting testnet (goerli), or mainnet (mainnet).
  • external_user_id : string A customer user ID.
  • external_user_email : string A customer email address.

Response

Status 200, 201

  • staked_eth_amount : integer An amount of staked ETH.
  • eth1_withdrawal_address : string An Ethereum address.
  • eth2_network_name : string A network name, denoting testnet (goerli) or mainnet (mainnet).
  • success : boolean The response code of a successful result can be either 200 or 201.

Status 422

An error status 422 is returned under the following conditions:

  • If /provision is called while validators are in the process of being provisioned, the error message is "We are currently fulfilling a previous request, please retry your request in a few minutes"
  • If /provision is called with a validators_count that exceeds the number of remaining un-funded validators, the error message is "You currently have n/100 unfunded validators, you are able to create no more validators."

Notes

  • For both mainnet and testnet, a maximum of 100 validators can be provisioned per request.
  • For both mainnet and testnet, each withdrawal_address has a maximum of 300 un-funded validators.
  • Specifying a validators_count greater than the number of remaining un-funded validators for a given withdrawal_address will cause the request to fail.
    • For example, if withdrawal address 0x123 has zero existing, un-funded validators, then the maximum value of validators_count is 100. However, if withdrawal address 0x123 has 230 existing, un-funded validators, the maximum value for validators_count is 70.
  • Once you have deposited to your provisioned validators, you can expect up to a 25 minute wait until the validator_count limit has been reset to acknowledge the deposit.

Webhook configuration

User can be notified once a new validator is provisioned. Configure a webhook URL and webhook API key under Prime / ETH Staking in the Prime Dashboard. The configured API key will be sent as an Authorization header.

Note

Validator API webhooks can only be configured from the Prime dashboard.

Webhook response format

{
  "action": "",
  "data": {
    "id": "",
    "withdrawal_address": "",
    "validators_count": 0
  }
}
  • action : string
  • data : object
    • id : string
    • withdrawal_address : string
    • validators_count : number
Request
Example Response
{
"staked_eth_amount": 32,
"eth1_withdrawal_address": "0xE40F80618324C814cD444434670a44ba4583aE38",
"eth2_network_name": "goerli",
"success": true
}


Get List of Validators

Returns a list of validators belonging to a customer. This endpoint works for both testnet (Goerli) and mainnet, depending on the environment of the API key you use.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/validators

Request

  • withdrawal_address : string An Ethereum address.
  • page[size] : integer The number of results to display, used for pagination.
  • page[number] : integer The page number to display.
  • include : string Accepts the value position.
  • status_history : string If present, status change history will be included for each validator.
  • status : string Accepted value(s): funding_requested, deposited, pending_initialized, pending_queued, active_ongoing, active_exiting, active_slashed, exited_unslashed, exited_slashed, withdrawal_possible, withdrawal_done, provisioned.

Response

  • data : array
    • object
      • id : string A unique identifier.
      • type : string The type of position.
      • attributes : object
        • name : string The position name.
        • pubkey : string A public key.
        • withdrawal_credentials : string Valid withdrawal credentials.
        • amount : integer An amount of ETH.
        • signature : string A valid signature.
        • deposit_data_root : string The deposit data.
        • deposit_message_root : string The deposit message.
        • fork_version : string A fork version.
        • eth2_network_name : string — A network name denoting testnet (goerli) or mainnet (mainnet).
        • status : string The positions current status.
        • deposit_cli_version : string The version of the CLI software used when making the deposit.
        • status_synced_at : string A timestamp indicating when the status was last synced.
        • figment_signature : string A base64 encoded signature of the validator's public key, signed by a private key maintained by Figment. Read more on the Signatures page.
        • status_history : array Details of the status history.
          • status : string A status.
          • changed_at : string A timestamp.
        • fee_recipient_address : hex string The fee recipient address, equivalent to the withdrawal_address.
        • on_demand_exit_requested_at : string A timestamp representing the customer request to exit this validator, either through the Figment app or Staking API.
        • on_demand_exit_approved_at : string A timestamp representing the time at which the customer exit request was approved by Figment.
        • on_demand_exit_submitted_at : string A timestamp representing the time at which the validator's exit transaction was submitted to Ethereum's consensus layer.
        • on_demand_exit_request_id : string Equivalent to the Staking API flow ID for which the customer requested to exit this validator.
        • presigned_exit_transaction : string A pre-signed exit transaction encrypted with the public encryption key you've stored with Figment (contact us to store either a PGP or RSA key). Pre-signed exit transactions are refreshed daily at 6:30AM UTC for active validators which have a stored encryption key. For PGP-encrypted messages, the message in this response contains the Version with the date and epoch when the exit transaction was last refreshed. The Comment portion of the message contains the validator's public key. Last is the encrypted VoluntaryExit message for this validator. For RSA-encrypted messages, this field will only contain the encrypted VoluntaryExit message for this validator. Shown with the query parameter presigned_exit_transaction=true. View our guide for pre-signed exit transactions here.
      • relationships : object
        • position : object
          • data : object
            • id : string A unique identifier.
            • type : string The position type.
      • links : object Pagination links based on page[size] and page[number].
        • self : string
        • current : string
        • next : string
        • last : string
        • prev : string
      • included : array
        • object
          • id : string A unique identifier.
          • type : string The position type.
          • attributes : object
            • id : string A unique identifier.
            • name : string A name.
            • eth1_withdrawal_address : string An Ethereum address.
            • staked_amount : integer An amount of staked ETH.
            • validators_count : integer A number of validators.
            • created_at : string A timestamp.
            • updated_at : string A timestamp.
Request
Example Response
{
"data": [
{
"id": "32",
"type": "validator",
"attributes": {
"id": 32,
"pubkey": "d1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb",
"name": null,
"withdrawal_credentials": "010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1",
"amount": 32000000000,
"signature": "aab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49",
"deposit_data_root": "b2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422",
"deposit_message_root": "026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44",
"fork_version": "00001020",
"eth2_network_name": "goerli",
"status": "deposited",
"deposit_cli_version": "1.2.0",
"status_synced_at": "2023-02-03T15:00:21.420Z",
"figment_signature": "ZDFlZjhkNDY4ZWY1M2Q4MjM2OGQyMDI2ZTMyMWFiMmM2ZDQ0ZjQ0YzMzYjdiOWYyMjM2OWJmNmRjZjM3ZmIwMjA4ZjgyZGQ2YjQ4NTMyNWNlMWJiZjVhZWM3YWQ0NWJi",
"status_history": [
{
"status": "funding_requested",
"changed_at": "2023-01-04T16:00:14.459Z"
}
],
"fee_recipient_address": "0x781462762B706AA7c1DA71FBA1a545724928b81f",
"on_demand_exit_requested_at": null,
"on_demand_exit_approved_at": null,
"on_demand_exit_submitted_at": null,
"on_demand_exit_request_id": null,
"presigned_exit_transaction": "-----BEGIN PGP MESSAGE-----\nVersion: 2023-03-03 (159679)\nComment: 0xf27394bf199c58623206923c26fd186fd1e91302d09f22aaf40c053d8725364b05199bebe91d3a6737aebe8cc5a1b202\n\nwV7DhAgK6qzUbbYSAQdA069SH+2v3hkzd/REedn8/1k2eVK0GGV4r4lzGf5Jg3Ew\n/cFSwaXhaBgfinFXMCmYJtYZF06oZcH4XzZm3IPeXktS6wfScogE+W/eapX0nHlT\n0sF6Bb/uJAExeOtRurwgqDkc/D+g+BioSsg2XQ6O9a6SUj7bb2plX2E9JPhSMhPY\nzLXA4cB8F9IjpSv/Ofhlbid9+cWnZLDHrU69Q0nCcTwZTQZbOoOi7Mj04pKEHux1\nvaalZ4O8N5ptJwWygB7NMxZAkosruPURQ4HS2EaFjr5Fjle6+pfYN1y39hOvsoQe\nT3E1/4DbfmFbDNjBqwjAJLkmEBu18AKgxJtEjQaCoeF1Q/WTIA8JBX3yy14AZI3q\noYZ5gd5QdVo24aoYrm75rQO0GfZqvU5B/kKezrA+eFngO79bgppyjIacItNaHEaD\nkQfO+6SE8A0mQXxQr0IqJiiNhrG8tPhDcLZcvKRXPoGIkQcFNCPiOehFsB6drhP6\n7v/P81fj63df8fk6FBkiDHIdros8xj9PGHbYNrCNsw==\n=DiMO\n-----END PGP MESSAGE-----"
},
"relationships": {
"position": {
"data": {
"id": "13",
"type": "position"
}
}
}
}
],
"links": {
"self": "https://hubble.staging.figment.io/api/v1/prime/eth2_staking/validators?withdrawal_address=0x781462762B706AA7c1DA71FBA1a545724928b81f&include=13&presigned_exit_transaction=true",
"current": "https://hubble.staging.figment.io/api/v1/prime/eth2_staking/validators?include=13&page[number]=1&presigned_exit_transaction=true&withdrawal_address=0x781462762B706AA7c1DA71FBA1a545724928b81f"
},
"included": [
{
"id": "13",
"type": "position",
"attributes": {
"id": 0,
"name": null,
"eth1_withdrawal_address": "0x781462762B706AA7c1DA71FBA1a545724928b81f",
"staked_amount": 32000000000,
"validators_count": 1,
"created_at": "2022-01-04T12:00:17.459Z",
"updated_at": "2023-01-04T12:00:22.264Z"
}
}
]
}


Get Validator Details

Returns information about a single validator.

URL

https://hubble.figment.io/api/v1/prime/eth2_staking/validators/{id}

Request

  • include : string Accepts the value position.
  • status_history : string If present, the status change history will be included for each validator.
  • presigned_exit_transaction : string Pass true to include a pre-signed exit transaction, if one is available.

Response

  • data : array
    • object
      • id : string A unique identifier.
      • type : string The type of position.
      • attributes : object
        • id : number A unique identifier.
        • pubkey : string A public key.
        • name : string The position name.
        • withdrawal_credentials : string Valid withdrawal credentials.
        • amount : integer An amount of ETH.
        • signature : string A valid signature.
        • deposit_data_root : string The deposit data.
        • deposit_message_root : string The deposit message.
        • fork_version : string A fork version.
        • eth2_network_name : string A network name, denoting testnet (goerli) or mainnet (mainnet).
        • status : string The positions current status.
        • deposit_cli_version : string The version of the CLI software used when making the deposit.
        • status_synced_at : string A timestamp indicating when the status was last synced.
        • figment_signature : string A base64 encoded signature of the validator's public key, signed by a private key maintained by Figment. Read more on the Signatures page.
        • status_history : array Details of the status history.
          • status : string A status.
          • changed_at : string A timestamp.
        • fee_recipient_address : hex string The fee recipient address, equivalent to the withdrawal_address.
        • on_demand_exit_requested_at : string A timestamp representing the customer request to exit this validator, either through the Figment app or Staking API.
        • on_demand_exit_approved_at : string A timestamp representing the time at which the customer exit request was approved by Figment.
        • on_demand_exit_submitted_at : string A timestamp representing the time at which the validator's exit transaction was submitted to Ethereum's consensus layer.
        • on_demand_exit_request_id : string Equivalent to the Staking API flow ID for which the customer requested to exit this validator.
        • presigned_exit_transaction : string A pre-signed exit transaction encrypted with the public encryption key you've stored with Figment (contact us to store either a PGP or RSA key). Pre-signed exit transactions are refreshed daily at 6:30AM UTC for active validators which have a stored encryption key. For PGP-encrypted messages, the message in this response contains the Version with the date and epoch when the exit transaction was last refreshed. The Comment portion of the message contains the validator's public key. Last is the encrypted VoluntaryExit message for this validator. For RSA-encrypted messages, this field will only contain the encrypted VoluntaryExit message for this validator. Shown with the query parameter presigned_exit_transaction=true. View our guide for pre-signed exit transactions here.
      • relationships : object
        • position : object
          • data : object
            • id : string A unique identifier.
            • type : string The position type.

Notes

The value of id passed to the endpoint, i.e. /validators/33 must be the ID number assigned to the validator when it is provisioned.

Request
Example Response
{
"data": {
"id": "33",
"type": "validator",
"attributes": {
"id": 32,
"pubkey": "d1ef8d468ef53d82368d2026e321ab2c6d44f44c33b7b9f22369bf6dcf37fb0208f82dd6b485325ce1bbf5aec7ad45bb",
"name": null,
"withdrawal_credentials": "010000000000000000000000fc438e6cc4b230eb5bfaae1337c3f5da2b9140f1",
"amount": 32000000000,
"signature": "aab7e3b41689fced6c3437a6bc5caf471ed319b94ad2642c47c5f641d5e3a046432171d47d48cd7a3e8a323939d4976c1315ad4dae134c421214673ddff9105ef1bb7f79c1babc6cd9c31428d5e44472164e9c9fccfd10fb9768c0855b194f49",
"deposit_data_root": "b2f5083221d6b61f2237af155c07c746f6a75c7d24dfe418106efdf87e9b9422",
"deposit_message_root": "026cbefa013e03a3d81592b7a5f6205773c12a6f7674529e497e9a4eb2df2d44",
"fork_version": "00000000",
"eth2_network_name": "goerli",
"status": "deposited",
"deposit_cli_version": "1.2.0",
"status_synced_at": "2023-01-10T12:00:11.189Z",
"figment_signature": "ZDFlZjhkNDY4ZWY1M2Q4MjM2OGQyMDI2ZTMyMWFiMmM2ZDQ0ZjQ0YzMzYjdiOWYyMjM2OWJmNmRjZjM3ZmIwMjA4ZjgyZGQ2YjQ4NTMyNWNlMWJiZjVhZWM3YWQ0NWJi",
"status_history": [
{
"status": "funding_requested",
"changed_at": "2023-01-04T16:00:14.459Z"
}
],
"fee_recipient_address": "0x781462762B706AA7c1DA71FBA1a545724928b81f",
"on_demand_exit_requested_at": null,
"on_demand_exit_approved_at": null,
"on_demand_exit_submitted_at": null,
"on_demand_exit_request_id": null,
"presigned_exit_transaction": "-----BEGIN PGP MESSAGE-----\nVersion: 2023-03-03 (159679)\nComment: 0xf27394bf199c58623206923c26fd186fd1e91302d09f22aaf40c053d8725364b05199bebe91d3a6737aebe8cc5a1b202\n\nwV7DhAgK6qzUbbYSAQdA069SH+2v3hkzd/REedn8/1k2eVK0GGV4r4lzGf5Jg3Ew\n/cFSwaXhaBgfinFXMCmYJtYZF06oZcH4XzZm3IPeXktS6wfScogE+W/eapX0nHlT\n0sF6Bb/uJAExeOtRurwgqDkc/D+g+BioSsg2XQ6O9a6SUj7bb2plX2E9JPhSMhPY\nzLXA4cB8F9IjpSv/Ofhlbid9+cWnZLDHrU69Q0nCcTwZTQZbOoOi7Mj04pKEHux1\nvaalZ4O8N5ptJwWygB7NMxZAkosruPURQ4HS2EaFjr5Fjle6+pfYN1y39hOvsoQe\nT3E1/4DbfmFbDNjBqwjAJLkmEBu18AKgxJtEjQaCoeF1Q/WTIA8JBX3yy14AZI3q\noYZ5gd5QdVo24aoYrm75rQO0GfZqvU5B/kKezrA+eFngO79bgppyjIacItNaHEaD\nkQfO+6SE8A0mQXxQr0IqJiiNhrG8tPhDcLZcvKRXPoGIkQcFNCPiOehFsB6drhP6\n7v/P81fj63df8fk6FBkiDHIdros8xj9PGHbYNrCNsw==\n=DiMO\n-----END PGP MESSAGE-----"
},
"relationships": {
"position": {
"data": {
"id": "13",
"type": "position"
}
}
}
}
}