Skip to main content
POST
/
staking
/
chains
/
{chainDescriptor}
/
stake
TypeScript
const response: Promise<FireblocksResponse<StakeResponse>> = fireblocks.staking.stake(stakingApiStakeRequest);
{
  "id": "afedfd2e4-e3c9-4b70-90d6-eb0f74bfd4sd8"
}

Documentation Index

Fetch the complete documentation index at: https://fireblocks-43c4b3ee-chore-add-cli.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Headers

Idempotency-Key
string

A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.

Path Parameters

chainDescriptor
enum<string>
required

Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA). Protocol identifier for the staking operation.

Available options:
ATOM_COS,
AXL,
AXL_TEST,
CELESTIA,
DYDX_DYDX,
ETH,
ETH_TEST6,
ETH_TEST_HOODI,
INJ_INJ,
MANTRA,
MATIC,
OSMO,
SOL,
SOL_TEST,
STETH_ETH,
STETH_ETH_TEST6_DZFA,
STETH_ETH_TEST_HOODI

Body

application/json
vaultAccountId
string
required

The Fireblocks vault account ID that will source the funds for staking.

Example:

"22"

providerId
enum<string>
required

The unique identifier of the staking provider

Available options:
kiln,
figment,
lido,
p2p,
blockdaemon,
galaxy,
pierTwo,
kraken
Example:

"kiln"

stakeAmount
string
required

The amount of tokens to stake. The amount may be truncated to match the chain's decimal precision requirements.

Example:

"32"

txNote
string

Optional note or comment to associate with the stake transaction. This note will be included in transaction records and can be used for tracking or audit purposes.

Example:

"stake request of 32ETH created on 02.04.23"

fee
string

Optional transaction fee. Controls the priority and cost of the blockchain transaction. Only one of 'fee' or 'feeLevel' should be provided; if both are specified, 'feeLevel' takes precedence.

Example:

"7"

feeLevel
enum<string>

Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required.

Available options:
LOW,
MEDIUM,
HIGH
Example:

"MEDIUM"

chainDescriptor
string

Protocol identifier for the staking operation

Example:

"ETH"

id
string

Applies only to Ethereum compounding validator staking (Pectra/EIP-7251). The ID of an existing staking position to add additional stake to. When provided, adds stake to the specified position instead of creating a new one. Requires 'isCompoundingValidator' to be true.

Example:

"b70701f4-d7b1-4795-a8ee-b09cdb5b850d"

isCompoundingValidator
boolean

Applies only to Ethereum staking. Indicates whether to use a compounding validator (see Pectra/EIP-7251). When true, creates a position that supports adding additional stake via the 'id' parameter. If not provided, defaults to false and a legacy (non-compounding) validator will be used.

Example:

true

Response

Stake request accepted and created.

id
string
required

The unique identifier of the staking position

Example:

"afedfd2e4-e3c9-4b70-90d6-eb0f74bfd4sd8"