# Stakefish Documentation > Documentation for Stakefish ## Guides - [Introduction](https://docs.stake.fish/docs/intro.md) - [Public & Secure API Keys](https://docs.stake.fish/docs/api-keys.md) - [Getting Started](https://docs.stake.fish/docs/ethereum-getting-started.md) - [Enterprise Staking](https://docs.stake.fish/docs/ethereum-enterprise-staking.md) - [Secure API Key](https://docs.stake.fish/docs/ethereum-enterprise-staking-secure-api-keys.md) - [Stake Your First Validator](https://docs.stake.fish/docs/ethereum-enterprise-staking-stake-validator.md) - [Exit & Validator Withdrawal](https://docs.stake.fish/docs/ethereum-enterprise-staking-exit-withdraw-validator.md) - [Client Staking](https://docs.stake.fish/docs/ethereum-client-staking.md) - [Public & Secure API Keys](https://docs.stake.fish/docs/ethereum-client-staking-public-and-secure-api-keys.md) - [Validator Staking: A Quick Start](https://docs.stake.fish/docs/ethereum-client-staking-stake-validator.md) - [Exit & Validator Withdrawal](https://docs.stake.fish/docs/ethereum-client-staking-exit-withdraw-validator.md) - [Manage Validators](https://docs.stake.fish/docs/ethereum-validators.md) - [Monitor Your Validator](https://docs.stake.fish/docs/ethereum-validators-monitor-your-validator.md) - [Understanding the Validator Lifecycle](https://docs.stake.fish/docs/ethereum-validators-validator-lifecycle.md) - [Tracking Rewards](https://docs.stake.fish/docs/ethereum-rewards.md) - [Understanding Consensus Layer Rewards](https://docs.stake.fish/docs/ethereum-rewards-consensus-layer-rewards.md) - [Understanding Execution Layer Rewards](https://docs.stake.fish/docs/ethereum-rewards-execution-layer-rewards.md) - [Track Validator Performance](https://docs.stake.fish/docs/ethereum-rewards-track-validator-performance.md) - [Track Validator Daily Statistics](https://docs.stake.fish/docs/ethereum-rewards-track-validator-daily-rewards.md) - [Fee Pool: Maximizing Execution Layer Rewards](https://docs.stake.fish/docs/ethereum-fee-pool.md) - [Fee Pool Quick Start](https://docs.stake.fish/docs/ethereum-fee-pool-quick-start.md) - [The Lifecycle of Validator In The Fee Pool](https://docs.stake.fish/docs/ethereum-fee-pool-validator-lifecycle.md) - [Wallet Rewards](https://docs.stake.fish/docs/ethereum-fee-pool-check-rewards.md) - [Claiming Rewards](https://docs.stake.fish/docs/ethereum-fee-pool-claim-rewards.md) - [Claim History](https://docs.stake.fish/docs/ethereum-fee-pool-claim-history.md) - [Getting Started](https://docs.stake.fish/docs/solana-staking-getting-started.md) - [Staking](https://docs.stake.fish/docs/solana-staking-delegations.md) - [Understanding the Staking Lifecycle](https://docs.stake.fish/docs/understanding-the-staking-lifecycle.md) - [Staking Flow](https://docs.stake.fish/docs/solana-staking-quick-start.md) - [Staking](https://docs.stake.fish/docs/staking.md) - [Merge Delegations](https://docs.stake.fish/docs/merge-delegations.md) - [Split Delegations](https://docs.stake.fish/docs/split.md) - [Unstaking](https://docs.stake.fish/docs/solana-staking-unstaking.md) - [Withdrawal](https://docs.stake.fish/docs/withdrawal.md) - [Rewards Management](https://docs.stake.fish/docs/solana-staking-tracking-rewards.md) - [System Health & Status](https://docs.stake.fish/docs/system-health-status.md) - [Important Things to Know](https://docs.stake.fish/docs/important-things-to-know.md) - [Common Errors & Troubleshooting](https://docs.stake.fish/docs/common-errors-troubleshooting.md) - [Overview](https://docs.stake.fish/docs/sdk.md): stake.fish SDK - [Babylon BABY](https://docs.stake.fish/docs/babylon-baby.md): @stakefish/sdk-babylon-baby - [Cardano](https://docs.stake.fish/docs/cardano.md): @stakefish/sdk-cardano - [Cosmos](https://docs.stake.fish/docs/cosmos.md): @stakefish/sdk-cosmos - [EigenLayer (native Ether restaking)](https://docs.stake.fish/docs/eigenlayer-native-ether-restaking.md): @stakefish/sdk-eigenlayer - [Monad](https://docs.stake.fish/docs/monad.md): @stakefish/sdk-monad - [Polygon](https://docs.stake.fish/docs/polygon.md): @stakefish/sdk-polygon - [Starknet](https://docs.stake.fish/docs/starknet.md): @stakefish/sdk-starknet - [Sui](https://docs.stake.fish/docs/sui.md): @stakefish/sdk-sui - [zkVerify](https://docs.stake.fish/docs/zkverify.md): @stakefish/sdk-zkverify ## API Reference - [/v1/create-validators-admin](https://docs.stake.fish/reference/post_v1-create-validators-admin.md): Given count and withdrawal credentials, creates a list of deposit information for validators. Resulting list can be used to stake using stakefish's batch deposit contract. - [/v1/generate-exit-messages-admin](https://docs.stake.fish/reference/post_v1-generate-exit-messages-admin.md): IMPORTANT: This is a private endpoint that can be used only by the organization admin. Generates an exit message for a specified validator using their indices. This message facilitates the process of exiting the validator directly, eliminating the need for intermediary stakefish services. This allows stakers to broadcast the message to the Ethereum network on their own. - [/v1/exit-validators-admin](https://docs.stake.fish/reference/post_v1-exit-validators-admin.md): IMPORTANT: This is a private endpoint that can be used only by the organization admin. Initiates the process of exiting a validator from Ethereum staking operations using their indices. - [/v2/create-validators-admin](https://docs.stake.fish/reference/post_v2-create-validators-admin.md): Given count and withdrawal credentials, creates a list of deposit information for validators. Resulting list can be used to stake using stakefish's batch deposit contract. - [/v1/create-validators](https://docs.stake.fish/reference/post_v1-create-validators.md): Given count and withdrawal credentials, creates a list of deposit information for validators. Resulting list can be used to stake using stakefish's batch deposit contract. - [/v1/create-top-up-deposit-info](https://docs.stake.fish/reference/post_v1-create-top-up-deposit-info.md): Returns the information needed to top up a validator via the Ethereum staking contract - [/v1/generate-exit-messages](https://docs.stake.fish/reference/post_v1-generate-exit-messages.md): Generates an exit message for a specified validator using their indices. This message facilitates the process of exiting the validator directly, eliminating the need for intermediary stakefish services. This allows stakers to broadcast the message to the Ethereum network on their own. - [/v1/exit-validators](https://docs.stake.fish/reference/post_v1-exit-validators.md): Initiates the process of exiting a validator from Ethereum staking operations using their indices. - [/v1/remaining-keys](https://docs.stake.fish/reference/get_v1-remaining-keys.md): Returns the number of keys available for staking validators on Ethereum. - [/v1/consolidation-request-transaction](https://docs.stake.fish/reference/post_v1-consolidation-request-transaction.md): Returns the transaction details for either consolidating two validators into one, or upgrading withdrawal credentials from 0x01 to 0x02 - [/v1/withdrawal-request-transaction](https://docs.stake.fish/reference/post_v1-withdrawal-request-transaction.md): Returns the transaction details for withdrawing ETH from a validator - either a partial withdrawal or a full withdrawal. - [/v1/deposit-challenge](https://docs.stake.fish/reference/get_v1-deposit-challenge.md): Returns a challenge message for depositing a list of validators - the depositing address must sign this message. - [/v1/exit-challenge](https://docs.stake.fish/reference/get_v1-exit-challenge.md): Returns a challenge message for exiting a list of validators - the owner address must sign this message. - [/v1/verify-withdrawal-credentials](https://docs.stake.fish/reference/get_v1-verify-withdrawal-credentials.md): Can be used to check that a given depositor & withdrawal address are a safe match for creating a new validator. Tells us if there is a mismatch between the depositor and withdrawal address or if there is a mismatch between the EigenPod owner and the depositor address. - [/v2/create-validators](https://docs.stake.fish/reference/post_v2-create-validators.md): Given count and withdrawal credentials, creates a list of deposit information for validators. Resulting list can be used to stake using stakefish's batch deposit contract. - [/v2/deposit-challenge](https://docs.stake.fish/reference/get_v2-deposit-challenge.md): Returns a challenge message for depositing a list of validators - the depositing address must sign this message. - [Change Bls To Execution](https://docs.stake.fish/reference/change_bls_to_execution_validator_change_bls_to_execution_post.md): Used to broadcast a BLS(0x00) to Execution(0x01) withdrawal credentials change. - [Get Wallet](https://docs.stake.fish/reference/get_wallet_wallet__owner__get.md): Returns wallet details for given owner address - [Validators](https://docs.stake.fish/reference/validators_validators_get.md): Returns list of validators including details. Filterable by owner address, validator index or pubkey. - [Get Wallet Claims](https://docs.stake.fish/reference/get_wallet_claims_wallet__owner__pool__pool__claims_get.md): Returns wallet claims for given owner address and pool address - [Get Daily Validator Rewards](https://docs.stake.fish/reference/getdailyrewards.md): Retrieve daily validator rewards data including consensus rewards, execution income, penalties, and withdrawals for specified validators within a date range. All income and reward values are gross amounts before fee & commission deductions. - [Get Validator Rewards Statistics & APR](https://docs.stake.fish/reference/getrewardsstatsv2-1.md): Calculate staking statistics including APR (Annual Percentage Rate) for consensus and execution layers, estimated income projections, and performance metrics for specified validators over a given time period. Individual APR and income values are gross amounts before fee deductions. - [Get Syncing Status](https://docs.stake.fish/reference/get_syncing-1.md): Check the current synchronization status of the rewards data processor. Returns the most recent day for which validator rewards data has been successfully processed and is available for querying. - [Get Pod Status](https://docs.stake.fish/reference/eigen-proofs-api-v1-status.md) - [Generate Checkpoint Proofs](https://docs.stake.fish/reference/eigen-proofs-api-v1-checkpoints.md) - [Generate Withdrawal Credentials Proofs](https://docs.stake.fish/reference/eigen-proofs-api-v1-credentials.md) - [List Wallet Rewards](https://docs.stake.fish/reference/eigen-proofs-api-v1-rewards.md) - [Generate Claim Proofs](https://docs.stake.fish/reference/eigen-proofs-api-v1-claim-rewards.md) - [System Status](https://docs.stake.fish/reference/eigen-proofs-api-health.md) - [Stats](https://docs.stake.fish/reference/stats_network_stats_get.md): Returns statistics about the Ethereum network, including waiting times for activation, exit, and withdrawal - [Get a list of delegations (stake accounts) for a stake authority](https://docs.stake.fish/reference/get_delegations-stakeauthoritypubkey.md): Returns a list of delegations for a stake authority. Delegations are stake accounts that have delegated to a validator. - [Create a new delegation](https://docs.stake.fish/reference/post_delegations-delegate.md): Returns the delegation transaction that should be signed and broadcasted on the client. The transaction will initialize a new stake account and delegate the staked SOL to Stakefish. - [Activate an existing delegation](https://docs.stake.fish/reference/post_delegations-activate.md): Returns the delegation transaction that should be signed and broadcasted on the client. The transaction will use already initialized stake account and delegate the staked SOL to Stakefish. - [Deactivate a delegation](https://docs.stake.fish/reference/post_delegations-undelegate.md): Returns the serialized transaction that should be signed and broadcasted on the client. The transaction will initiate the deactivation of a stake account. Once the stake account is deactivated, the SOL can be withdrawn from the stake account. - [Withdraw from a deactivated delegation](https://docs.stake.fish/reference/post_delegations-withdraw.md): Returns the withdrawal transaction that should be signed and broadcasted on the client. The transaction will immediately withdraw the SOL from a deactivated stake account into the toPubkey account (defaults to the stake authority). - [Merge multiple stake accounts](https://docs.stake.fish/reference/post_delegations-merge.md): Returns the merge transaction that should be signed and broadcasted on the client. The transaction will immediately merge source stake accounts into target stake account. - [Split stake accounts](https://docs.stake.fish/reference/post_delegations-split.md): Returns the split transaction that should be signed and broadcasted on the client. The transaction will immediately split source stake account into two stake accounts - [Get a global snapshot of APR for both delegators and the stake.fish validator.](https://docs.stake.fish/reference/get_rewards-summary.md): Returns a breakdown of the APR's earned by delegators and the stake.fish validator. Including MEV, Inflationary and Block Production. - [Get the reward statistics for multiple stake accounts](https://docs.stake.fish/reference/post_rewards-stake-account-stats.md): Returns the reward statistics (APRs) for multiple stake accounts - including MEV, Inflationary, and total APR. - [Get a list of rewards for a given stake account](https://docs.stake.fish/reference/get_rewards-stake-account-stakeaccountpubkey.md): Returns a list of rewards for a stake account. Rewards consist of both inflation & MEV rewards. - [Get a list of rewards for a given stake authority](https://docs.stake.fish/reference/get_rewards-authority-stakeauthoritypubkey.md): Returns a list of rewards for a stake authority. Rewards consist of both inflation & MEV rewards. - [Get the reward statistics for a stake authority (delegator)](https://docs.stake.fish/reference/get_rewards-authority-stakeauthoritypubkey-stats.md): Returns the reward statistics (APRs) for a stake authority (delegator) - including MEV, Inflationary, and total APR. - [Status of the service](https://docs.stake.fish/reference/get_healthz-1.md): Returns a list of status indicators as key-value pairs. Each tuple represents a different aspect of the service, where the key describes the service feature and the value shows its status. For example, [capacity, true] indicates that the service has sufficient capacity and is operational. - [System sync status](https://docs.stake.fish/reference/get_syncing.md): Returns comprehensive sync status for protocol and MEV components, including overall health and current chain information. MEV data may lag during early epochs (first 30%) as rewards are distributed. - [Get stake.fish Cardano pool information](https://docs.stake.fish/reference/cardanocontroller_getvalidator_v1.md) - [Get delegation info for a Cardano stake address](https://docs.stake.fish/reference/cardanocontroller_getstakes_v1.md) - [Get Cardano staking rewards summary for stake.fish pool](https://docs.stake.fish/reference/cardanocontroller_getrewardssummary_v1.md): Retrieve aggregated rewards summary for the stake.fish Cardano pool. **Summary Includes:** - APR - Pool performance metrics - Validator commission and delegation info **Use Cases:** - Display pool performance metrics - Calculate expected returns for delegators - [Get staking statistics for a Cardano delegator](https://docs.stake.fish/reference/cardanocontroller_getdelegatorstats_v1.md): Retrieve comprehensive staking statistics for a delegator address. **Statistics Include:** - **Active Stake**: Current delegated amount (controlled amount) - **Pending Rewards**: Available rewards that can be withdrawn - **Withdrawn Rewards**: Total rewards already withdrawn - **Lifetime Rewards**: All rewards earned (total) - **APR**: Annual Percentage Rate for the validator pool **Address Format:** - Accepts both stake addresses (stake1...) and payment addresses (addr1...) - Payment addresses are automatically converted to stake addresses **Use Cases:** - Display user's staking dashboard - Track reward earnings over time - Show withdrawable balance - Display expected APR - [Get Total Value Locked (TVL) for the organization](https://docs.stake.fish/reference/cardanocontroller_gettvl_v1.md): Retrieve the total value of active delegations tracked for the calling organization. **TVL Calculation:** - Aggregates all successful delegate and undelegate blockchain events for the organization - TVL = sum of delegate amounts minus sum of undelegate amounts, per stake address - Only stake addresses with a positive net delegation are included - Reward withdrawals do not affect TVL **Response Includes:** - Total Value Locked in lovelace and ADA - Number of active delegators (unique stake addresses with positive net delegation) - Last synced block number and timestamp from the sync job - [Prepare a delegation transaction](https://docs.stake.fish/reference/cardanocontroller_preparedelegatetransaction_v1.md): Prepare an unsigned transaction to start earning rewards by delegating to stake.fish pool. Can also be used to redelegate from another pool. **Important Notes:** • Takes 2 epochs (~10 days) to become active • Requires 2 ADA key deposit if registration needed • Must have sufficient ADA for fees in payment address **Blockfrost Project ID:** Can be provided either in the request body or as a query parameter `blockfrostProjectId`. - [Prepare an undelegation transaction](https://docs.stake.fish/reference/cardanocontroller_prepareundelegatetransaction_v1.md): Prepare an unsigned transaction to complete exit from staking and get deposit back. **Important Notes:** • Withdraws all rewards + deregisters stake key + stops delegation • Returns 2 ADA key deposit • This is permanent - you'll need to register again to delegate • Must have sufficient ADA for fees in payment address **Blockfrost Project ID:** Can be provided either in the request body or as a query parameter `blockfrostProjectId`. - [Prepare a rewards withdrawal transaction](https://docs.stake.fish/reference/cardanocontroller_preparewithdrawtransaction_v1.md): Prepare an unsigned transaction to claim accumulated rewards while staying delegated. **Important Notes:** • Claims ALL available rewards only (partial withdrawal not supported) • Stake remains registered and delegated, continues earning rewards • Must have withdrawable rewards > 0 • Must have sufficient ADA for fees in payment address • Requires DRep delegation before withdrawal (Conway era requirement) **Blockfrost Project ID:** Can be provided either in the request body or as a query parameter `blockfrostProjectId`. - [Prepare a DRep delegation transaction](https://docs.stake.fish/reference/cardanocontroller_preparedrepdelegatetransaction_v1.md): Prepare an unsigned transaction to delegate your voting power to the "always-abstain" DRep. **Important Notes:** • Delegates voting power to always-abstain, meaning you abstain from all governance votes • Required for Conway era withdrawals if you haven't already delegated to a DRep • Must have a registered stake key • Must have sufficient ADA for fees in payment address • Can be changed later to delegate to a different DRep or no-confidence **Blockfrost Project ID:** Can be provided either in the request body or as a query parameter `blockfrostProjectId`. - [Broadcast a signed Cardano transaction](https://docs.stake.fish/reference/cardanocontroller_broadcasttransaction_v1.md) - [Get Cardano transaction status](https://docs.stake.fish/reference/cardanocontroller_gettransactionstatus_v1.md) - [Get stake.fish Cosmos validator information](https://docs.stake.fish/reference/cosmoscontroller_getvalidator_v1.md): Retrieve detailed information about the stake.fish Cosmos validator. **Validator Information Includes:** - Validator operator address and display name - Commission rates (current, maximum, max change rate) - Voting power and total delegated tokens - Validator status (bonded, unbonding, unbonded) - APR/APY calculations for staking rewards - Unbonding period and network parameters - Validator uptime and performance metrics **Use Cases:** - Display validator details in staking interfaces - Calculate potential rewards before delegating - Verify validator status and performance - Show unbonding period and other constraints - [Get all unbonding delegations for a Cosmos delegator](https://docs.stake.fish/reference/cosmoscontroller_getunbondingdelegations_v1.md): Retrieve detailed information about all active and completed unbonding delegations for a specific Cosmos delegator address with the stake.fish validator. **Unbonding Process:** - Unbonding period is 21 days for Cosmos Hub - Tokens do not earn rewards during unbonding - Maximum 7 unbonding entries per validator - Tokens are automatically available after completion time **Entry States:** - Active unbonding: isCompleted = false - Completed unbonding: isCompleted = true **Balance Fields:** - initialBalance: Original amount when unbonding started - remainingBalance: Current amount (may be reduced if validator was slashed) **Use Cases:** - Display all pending unbonding operations - Show completion times - Track total unbonding amount - Detect slashing (initialBalance > remainingBalance) - Monitor unbonding limit (max 7 entries per validator) - [Get delegations and staking positions for a Cosmos address](https://docs.stake.fish/reference/cosmoscontroller_getstakes_v1.md): Retrieve all staking-related information for a Cosmos delegator address. **Returns Information About:** - Active delegations with validators (bonded stakes) - Pending unbonding delegations (with completion times) - Active redelegations (validator switches in progress) - Staking performance metrics (APR/APY) **Delegation States:** - **Bonded**: Active delegations earning rewards - **Unbonding**: Delegations in 21-day unbonding period - **Redelegating**: Tokens being moved between validators **Important Notes:** - Unbonding period is 21 days for most Cosmos networks - Rewards can be claimed while delegation remains active - Redelegations are instant but have 21-day cooldown per validator pair - [Prepare a delegation transaction](https://docs.stake.fish/reference/cosmoscontroller_preparedelegatetransaction_v1.md): Prepare an unsigned transaction to stake tokens to earn rewards from a validator. **Important Notes:** • Sufficient balance required for delegation amount + gas fees • Tokens become bonded and rewards start accruing next block • Can undelegate anytime (21-day unbonding period applies) • Minimum delegation amounts may apply - [Prepare an undelegation transaction](https://docs.stake.fish/reference/cosmoscontroller_prepareundelegatetransaction_v1.md): Prepare an unsigned transaction to unstake tokens and begin 21-day unbonding period. **Important Notes:** • Requires active delegation with stake.fish validator • Begins 21-day unbonding period, stops earning rewards immediately • Tokens become available after exactly 21 days • Pending rewards are automatically claimed - [Prepare a redelegation transaction](https://docs.stake.fish/reference/cosmoscontroller_prepareredelegatetransaction_v1.md): Prepare an unsigned transaction to move delegation from another validator to stake.fish instantly. **Important Notes:** • Switch to stake.fish validator without unbonding penalty or delay • Requires active delegation with a non-stake.fish validator • Tokens move to stake.fish immediately, continue earning rewards • 21-day cooldown before re-redelegating same tokens • Special feature: Use amount="0" to redelegate the entire delegation amount - [Prepare a rewards claim transaction](https://docs.stake.fish/reference/cosmoscontroller_prepareclaimrewardstransaction_v1.md): Prepare an unsigned transaction to claim accumulated staking rewards. **Important Notes:** • Rewards transferred to balance, delegation principal unchanged • Rewards available next block • Can claim from multiple validators in single transaction - [Broadcast a signed Cosmos transaction](https://docs.stake.fish/reference/cosmoscontroller_broadcasttransaction_v1.md): Submit a signed transaction to the Cosmos network for execution. **Broadcast Process:** 1. Transaction is validated by network nodes 2. If valid, transaction enters the mempool 3. Block producers include transaction in next block 4. Transaction is executed and state is updated **Broadcast Modes:** - **sync** (recommended): Returns after CheckTx validation, includes transaction hash - **async**: Returns immediately without validation (fastest) - **block**: Waits for transaction to be included in a block (slowest) **After Broadcasting:** - Use the returned transaction hash to check status - Transaction may take 5-10 seconds to be included in a block - Failed transactions still consume gas fees - Monitor transaction status for final confirmation **Common Failure Reasons:** - Insufficient gas or fees - Invalid signature or malformed transaction - Account sequence mismatch (transaction replay) - Insufficient balance for operation - Validator-specific constraints (delegation limits, etc.) - [Get Cosmos transaction status and details](https://docs.stake.fish/reference/cosmoscontroller_gettransactionstatus_v1.md): Retrieve the current status and detailed information for a Cosmos transaction. **Transaction States:** - **pending**: Transaction submitted but not yet included in a block - **success**: Transaction executed successfully and included in a block - **failed**: Transaction failed during execution (still consumes gas) **Response Information:** - Transaction hash and current status - Block height and confirmation count - Gas usage (actual vs requested) - Transaction fees paid - Detailed error information for failed transactions - Events emitted during transaction execution **Confirmation Levels:** - 1+ confirmations: Transaction is included in blockchain - 6+ confirmations: Generally considered safe for most purposes - 20+ confirmations: High security for large value transactions **Use Cases:** - Poll transaction status after broadcasting - Verify transaction was executed successfully - Retrieve transaction receipt and event logs - Debug failed transactions - Calculate actual costs and gas usage - [Get Cosmos staking rewards summary for stake.fish validator](https://docs.stake.fish/reference/cosmoscontroller_getrewardssummary_v1.md): Retrieve aggregated rewards summary for the stake.fish Cosmos validator. **Summary Includes:** - Total delegations to the validator - Annual Percentage Rate (APR) for staking - Validator commission rate - Delegator count **Caching:** - Results are cached until midnight UTC to optimize performance - Cache is automatically invalidated and refreshed daily at 00:00 UTC **Use Cases:** - Display validator performance metrics - Calculate expected returns for delegators - Monitor commission rate changes - [Get rewards and APR stats for a specific Cosmos delegator](https://docs.stake.fish/reference/cosmoscontroller_getdelegatorstats_v1.md): Retrieve rewards and APR statistics for a delegator with the stake.fish validator. **Stats Include:** - Pending rewards available for claiming - Annual Percentage Rate (APR) based on validator performance **Use Cases:** - Display delegator's current pending rewards - Calculate estimated future rewards based on historical APR - Monitor validator performance over time **Note:** For delegation amounts and unbonding information, use the /stakes/:address endpoint - [Get Total Value Locked (TVL) for the organization](https://docs.stake.fish/reference/cosmoscontroller_gettvl_v1.md): Retrieve the total value of active delegations tracked for the calling organization. **TVL Calculation:** - Aggregates all successful delegate and undelegate blockchain events for the organization - TVL = sum of delegate amounts minus sum of undelegate amounts, per delegator - Only delegators with a positive net delegation are included **Response Includes:** - Total Value Locked in uatom and ATOM - Number of active delegators (unique addresses with positive net delegation) - Last synced block number and timestamp from the sync job - [Get stake.fish SUI validator information](https://docs.stake.fish/reference/suicontroller_getvalidator_v1.md) - [Get delegator stake information for stake.fish validator](https://docs.stake.fish/reference/suicontroller_getstakes_v1.md): Retrieve aggregated stake information for a delegator staking with the stake.fish Sui validator. **Response Includes:** - Delegator address and validator address - Total delegated amount (sum of all stake accounts) - Array of individual stake accounts with details **Stake Account Details:** - Stake object ID, principal amount, pool ID - Activation epoch, active/pending status - Support for multiple simultaneous delegations - [Prepare a delegation transaction](https://docs.stake.fish/reference/suicontroller_preparedelegatetransaction_v1.md): Prepare an unsigned transaction to stake SUI tokens to earn rewards from stake.fish validator. **Important Notes:** • Delegation requires specifying the amount of SUI to stake • There is no unbonding period - undelegated SUI is immediately available • Gas fees are paid in SUI from the sender's address • Staking rewards are automatically compounded (no separate claim needed) - [Prepare an undelegation transaction](https://docs.stake.fish/reference/suicontroller_prepareundelegatetransaction_v1.md): Prepare an unsigned transaction to unstake SUI tokens and stop earning rewards. **Important Notes:** • Undelegation requires the stake object ID from previous delegation • There is no unbonding period - undelegated SUI is immediately available • Gas fees are paid in SUI from the sender's address • Rewards are automatically included in the undelegated amount - [Broadcast a signed SUI transaction](https://docs.stake.fish/reference/suicontroller_broadcasttransaction_v1.md) - [Get SUI transaction status](https://docs.stake.fish/reference/suicontroller_gettransactionstatus_v1.md) - [Get Sui staking rewards summary for stake.fish validator](https://docs.stake.fish/reference/suicontroller_getrewardssummary_v1.md): Retrieve aggregated rewards summary for the stake.fish Sui validator. **Summary Includes:** - Annual Percentage Rate (APR) for staking - Type of calculation (backward looking) - Validator performance metrics **Time Window:** - **7d**: Last 7 days of rewards data - **30d**: Last 30 days of rewards data **Use Cases:** - Display validator performance metrics - Calculate expected returns for delegators - [Get delegator rewards stats for stake.fish validator](https://docs.stake.fish/reference/suicontroller_getdelegatorstats_v1.md): Retrieve aggregated rewards stats for a specific delegator staking with the stake.fish Sui validator. **Stats Includes:** - Total delegated amount (sum of all stake accounts) - Annual Percentage Rate (APR) for staking - Time window for the calculation **Multiple Stake Accounts:** - Automatically aggregates data from all stake accounts - Returns total amounts across all delegations **Use Cases:** - Display delegator's staking performance - Calculate expected returns based on current APR - Monitor total staked amount - [Get stake.fish Monad validator information](https://docs.stake.fish/reference/monadcontroller_getvalidator_v1.md): Retrieve detailed information about the stake.fish Monad validator. - [Get stake positions for an address](https://docs.stake.fish/reference/monadcontroller_getstakes_v1.md): Retrieve the delegator stake information for the specified address with the stake.fish validator. Returns current active stake, unclaimed rewards, and pending stake changes. - [Prepare delegation transaction](https://docs.stake.fish/reference/monadcontroller_preparedelegatetransaction_v1.md) - [Prepare undelegation transaction](https://docs.stake.fish/reference/monadcontroller_prepareundelegatetransaction_v1.md): Prepare an unsigned transaction to undelegate tokens from the stake.fish validator. The withdrawId parameter serves as an identifier for withdrawal requests, allowing up to 256 concurrent undelegations per (validator, delegator) pair. - [Prepare withdraw transaction](https://docs.stake.fish/reference/monadcontroller_preparewithdrawtransaction_v1.md): Prepare an unsigned transaction to withdraw unstaked tokens after the unbonding period. Use the same withdrawId that was previously supplied to the undelegate transaction. - [Prepare claim rewards transaction](https://docs.stake.fish/reference/monadcontroller_prepareclaimrewardstransaction_v1.md): Prepare an unsigned transaction to claim accumulated staking rewards from the stake.fish validator. This withdraws earned rewards to the delegator address. - [Prepare compound transaction](https://docs.stake.fish/reference/monadcontroller_preparecompoundtransaction_v1.md): Prepare an unsigned transaction to compound (restake) accumulated staking rewards with the stake.fish validator. This reinvests rewards back into the delegation automatically. - [Broadcast signed transaction](https://docs.stake.fish/reference/monadcontroller_broadcasttransaction_v1.md) - [Get transaction status](https://docs.stake.fish/reference/monadcontroller_gettransactionstatus_v1.md) - [Get Monad staking rewards summary for stake.fish validator](https://docs.stake.fish/reference/monadcontroller_getrewardssummary_v1.md): Retrieve current rewards summary for the stake.fish Monad validator. **Summary Includes:** - Validator ID - Total delegated amount (in wei and MON format) - Validator commission rate - Annual Percentage Rate (APR) **Data Source:** - Fetches latest validator data from StakingRewards API - Includes total staked tokens, commission rate, and reward rate **Caching:** - Results are cached until midnight UTC to optimize performance - Cache is automatically invalidated and refreshed daily at 00:00 UTC - [Get rewards and APR stats for a specific Monad delegator](https://docs.stake.fish/reference/monadcontroller_getdelegatorstats_v1.md): Retrieve rewards and APR statistics for a delegator with the stake.fish validator. **Stats Include:** - Current APR from StakingRewards API - Pending rewards available for claiming - Total delegated amount - Delegated amount in MON format **APR Source:** - Fetched from StakingRewards API reward_rate metric - Current data only **Use Cases:** - Display delegator's current pending rewards - Show APR for staking decisions - Monitor validator performance **Note:** For detailed stake information, use the /stakes/:address endpoint - [Get withdrawal request information](https://docs.stake.fish/reference/monadcontroller_getwithdrawalrequest_v1.md): Retrieve information about a specific withdrawal request for a delegator. **Parameters:** - delegatorAddress: The Monad address of the delegator - withdrawalId: The withdrawal identifier (0-255), previously supplied to the undelegate transaction **Response:** - withdrawalAmount: Amount of MON tokens in the withdrawal request (in wei) - withdrawalAmountFormatted: Formatted withdrawal amount in MON - accRewardPerToken: Accumulator value at time of undelegation for reward calculation - withdrawEpoch: Epoch when tokens become withdrawable - currentEpoch: Current epoch number for comparison with withdrawEpoch **Use Cases:** - Check the status of a pending withdrawal - Verify withdrawal amount before executing withdraw transaction - Track unbonding period progress - Determine if tokens are ready for withdrawal (currentEpoch >= withdrawEpoch) - [Get stake.fish Polygon validator information](https://docs.stake.fish/reference/polygoncontroller_getvalidator_v1.md) - [Get stake positions for an address](https://docs.stake.fish/reference/polygoncontroller_getstakes_v1.md) - [Get unbonding delegations for an address](https://docs.stake.fish/reference/polygoncontroller_getunbondingdelegations_v1.md) - [Prepare delegation transaction](https://docs.stake.fish/reference/polygoncontroller_preparedelegatetransaction_v1.md) - [Prepare undelegation transaction](https://docs.stake.fish/reference/polygoncontroller_prepareundelegatetransaction_v1.md) - [Prepare claim rewards transaction](https://docs.stake.fish/reference/polygoncontroller_prepareclaimrewardstransaction_v1.md): Prepare a transaction to claim staking rewards for a delegator. **Minimum Reward Requirement:** - Minimum reward amount to claim is **2 POL** - If the available rewards are less than 2 POL, the transaction will fail **Use Cases:** - Claim accumulated staking rewards from delegations - Rewards are automatically calculated based on validator performance - Rewards are claimed in POL tokens **Note:** Check available rewards using the `/chains/polygon/rewards/:address` endpoint before claiming. - [Prepare claim unstaked transaction](https://docs.stake.fish/reference/polygoncontroller_prepareclaimunstakedtransaction_v1.md) - [Prepare restake (compound) rewards transaction](https://docs.stake.fish/reference/polygoncontroller_preparerestaketransaction_v1.md): Prepare a transaction to restake (compound) staking rewards back into delegation. **Minimum Reward Requirement:** - Minimum reward amount to restake is **2 POL** - If the available rewards are less than 2 POL, the transaction will fail **Use Cases:** - Compound accumulated staking rewards back into delegation - Automatically increases your staked amount with earned rewards - Rewards are restaked in POL tokens **Note:** Check available rewards using the `/chains/polygon/rewards/:address` endpoint before restaking. - [Prepare token approval transaction](https://docs.stake.fish/reference/polygoncontroller_prepareapprovetransaction_v1.md) - [Broadcast signed transaction](https://docs.stake.fish/reference/polygoncontroller_broadcasttransaction_v1.md) - [Get transaction status](https://docs.stake.fish/reference/polygoncontroller_gettransactionstatus_v1.md) - [Get Polygon staking rewards summary for stake.fish validator](https://docs.stake.fish/reference/polygoncontroller_getrewardssummary_v1.md): Retrieve current rewards summary for the stake.fish Polygon validator. **Summary Includes:** - Current estimated APR based on validator commission - Total delegations to the validator - Validator commission rate - Time window for the calculation **Time Windows:** - **7d**: Last 7 days of rewards data (default) - **30d**: Last 30 days of rewards data **APR Calculation:** - Estimated based on typical Polygon staking yields (5-8% APR) - Adjusted for validator commission rate - Calculated for the specified time window - [Get rewards and APR stats for a specific Polygon delegator](https://docs.stake.fish/reference/polygoncontroller_getdelegatorstats_v1.md): Retrieve rewards and APR statistics for a delegator with the stake.fish validator. **Stats Include:** - Current estimated APR based on validator performance - Pending rewards available for claiming - Total delegated amount - Delegated amount in POL format **APR Calculation:** - Estimated based on validator commission and typical Polygon yields - Current data only (no historical time windows) **Use Cases:** - Display delegator's current pending rewards - Show estimated APR for staking decisions - Monitor validator performance **Note:** For delegation amounts and unbonding information, use the /stakes/:address endpoint - [Get Total Value Locked (TVL) for the organization](https://docs.stake.fish/reference/polygoncontroller_gettvl_v1.md): Retrieve the total value of active delegations tracked for the calling organization. **TVL Calculation:** - Aggregates all successful share_minted and share_burned blockchain events for the organization - TVL = sum of share_minted amounts minus sum of share_burned amounts, per delegator - Only delegators with a positive net delegation are included **Response Includes:** - Total Value Locked in wei and POL - Number of active delegators (unique addresses with positive net delegation) - Last synced block number and timestamp from the sync job - [Get stake.fish Starknet pool information](https://docs.stake.fish/reference/starknetcontroller_getvalidator_v1.md): Retrieve detailed information about the stake.fish Starknet STRK staking pool. - [Get delegation details for a specific address](https://docs.stake.fish/reference/starknetcontroller_getdelegation_v1.md): Retrieve delegation information for the specified address. Each stake includes: - Current active stake amount - Unclaimed rewards - Unbonding status and amount - [Prepare a staking/delegation transaction](https://docs.stake.fish/reference/starknetcontroller_preparestaketransaction_v1.md): Prepare an unsigned transaction to stake STRK tokens with the stake.fish pool. - [Prepare an unstaking transaction](https://docs.stake.fish/reference/starknetcontroller_prepareunstaketransaction_v1.md): Prepare an unsigned transaction to initiate unstaking from the stake.fish pool. This starts the unbonding period. - [Withdraw unstaked tokens after unbonding period](https://docs.stake.fish/reference/starknetcontroller_preparewithdrawtransaction_v1.md): Prepare an unsigned transaction to withdraw unstaked STRK tokens after the unbonding period has completed. - [Claim accumulated staking rewards](https://docs.stake.fish/reference/starknetcontroller_prepareclaimrewardstransaction_v1.md): Prepare an unsigned transaction to claim accumulated STRK staking rewards from the stake.fish pool. - [Get transaction status](https://docs.stake.fish/reference/starknetcontroller_gettransactionstatus_v1.md) - [Get Starknet staking rewards summary for stake.fish pool](https://docs.stake.fish/reference/starknetcontroller_getrewardssummary_v1.md): Retrieve current rewards summary for the stake.fish Starknet STRK pool. **Summary Includes:** - Pool Address - Total delegated amount - Validator commission rate - Annual Percentage Rate (APR) - 7-day backward-looking **Caching:** - Results are cached until midnight UTC to optimize performance - [Get rewards and APR stats for a specific Starknet delegator](https://docs.stake.fish/reference/starknetcontroller_getdelegatorstats_v1.md): Retrieve rewards and APR statistics for a delegator with the stake.fish pool. **Stats Include:** - Current APR (7-day backward-looking) - Pending rewards available for claiming - Total delegated amount **Use Cases:** - Display delegator's current pending rewards - Show APR for staking decisions - Monitor validator performance **Note:** For detailed stake information, use the /delegation/:address endpoint - [Get stake.fish zkVerify validator information](https://docs.stake.fish/reference/zkverifycontroller_getvalidatorinfo_v1.md): Retrieve detailed information about the stake.fish zkVerify validator. - [Get delegator stake information](https://docs.stake.fish/reference/zkverifycontroller_getstakes_v1.md): Retrieve all staking positions for a specific delegator address. - [Prepare zkVerify delegation transaction](https://docs.stake.fish/reference/zkverifycontroller_preparedelegatetransaction_v1.md): Prepare an unsigned transaction to delegate VFY tokens to the stake.fish validator. **Delegation Process:** - Delegate VFY tokens to earn staking rewards - Tokens remain locked for the staking period - Earn rewards based on validator performance and commission **Requirements:** - Valid zkVerify address format - Minimum delegation amount 10 VFY total (you can add less, but the total staked amount must be at least 10 VFY) - Sufficient VFY balance for delegation and fees **Note:** After delegation, tokens will be locked. Use undelegate to unlock after a delay. - [Prepare zkVerify undelegation transaction](https://docs.stake.fish/reference/zkverifycontroller_prepareundelegatetransaction_v1.md): Prepare an unsigned transaction to undelegate VFY tokens from the stake.fish validator. **Two Modes of Undelegation:** **Full Undelegation (no amount specified):** - Removes all staked VFY tokens from validator - Stops earning staking rewards immediately - Completely withdraws from staking participation **Partial Undelegation (amount specified):** - Removes specified amount of VFY tokens from validator - Keeps remaining stake active and earning rewards - Remaining bonded amount must meet minimum requirements **Unbonding Period:** - Tokens remain locked during unbonding period - Duration depends on zkVerify network parameters - Check unbonding status after transaction confirmation - [Prepare zkVerify redelegation transaction](https://docs.stake.fish/reference/zkverifycontroller_prepareredelegatetransaction_v1.md): Prepare an unsigned transaction to redelegate VFY tokens to stake.fish validator. **Redelegation Process:** - Move staked tokens from current validator to stake.fish validator - No unbonding period required (instant redelegation) - Maintains staking rewards continuity - [Prepare zkVerify pause transaction](https://docs.stake.fish/reference/zkverifycontroller_preparepausetransaction_v1.md): Prepare an unsigned transaction to pause staking for the delegator. **Pause Process:** - Stop earning staking rewards immediately - Staked tokens remain bonded to validator - Can resume staking later without unbonding period **Note:** Staked tokens remain locked but stop earning rewards. - [Prepare zkVerify withdraw transaction](https://docs.stake.fish/reference/zkverifycontroller_preparewithdrawtransaction_v1.md): Prepare an unsigned transaction to withdraw all unbonded VFY tokens. **Withdraw Process:** - Withdraw all tokens that have completed the unbonding period - Make tokens available for transfer or restaking - Can only withdraw tokens that are fully unbonded - [Broadcast signed zkVerify transaction](https://docs.stake.fish/reference/zkverifycontroller_broadcasttransaction_v1.md): Broadcast a signed zkVerify transaction to the network for execution. **Note:** Monitor transaction status using /transactions/:blockHash/:txHash/status endpoint. - [Get zkVerify transaction status via Subscan](https://docs.stake.fish/reference/zkverifycontroller_gettransactionstatusbytxhash_v1.md): Retrieve transaction status using the Subscan indexer API. Only requires the transaction hash. **Status Values:** - **pending**: Transaction submitted, awaiting indexing - **confirmed**: Transaction executed successfully - **failed**: Transaction execution failed - [Get zkVerify transaction status and details](https://docs.stake.fish/reference/zkverifycontroller_gettransactionstatus_v1.md): Retrieve detailed status and execution information for a zkVerify transaction. **Status Values:** - **pending**: Transaction submitted, awaiting execution - **confirmed**: Transaction executed and checkpointed - **failed**: Transaction execution failed - [Get zkVerify staking rewards summary for stake.fish validator](https://docs.stake.fish/reference/zkverifycontroller_getrewardssummary_v1.md): Retrieve aggregated rewards summary for the stake.fish zkVerify validator. **Summary Includes:** - Annual Percentage Rate (APR) over the specified time window, net of validator commission - Validator commission rate - Total stake and nominator count - Current era **APR Calculation:** - Calculated backwards from historical network rewards over the time window - Parametrized by time window (7d or 30d) **Caching:** - Results are cached until midnight UTC to optimize performance - Cache is automatically invalidated and refreshed daily at 00:00 UTC - [Get rewards and APR stats for a specific ZkVerify delegator](https://docs.stake.fish/reference/zkverifycontroller_getdelegatorstats_v1.md): Retrieve rewards and APR statistics for a delegator with the stake.fish validator. **APR Calculation:** - Calculated backwards from historical validator rewards data - Based on validator's total delegation rewards over the time window and current total delegation amount - Assumes constant delegation amount for the time window (any changes will affect the calculation) - Net of validator commission - Parametrized by time window (7d or 30d) **Time Windows:** - **7d**: APR calculated from last 7 days of validator rewards (default) - **30d**: APR calculated from last 30 days of validator rewards **Note:** For delegation amounts and staking information, use the /stakes/:address endpoint - [Kubernetes liveness probe](https://docs.stake.fish/reference/healthcontroller_livez.md) - [Kubernetes readiness probe](https://docs.stake.fish/reference/healthcontroller_readyz0.md) - [Kubernetes readiness probe](https://docs.stake.fish/reference/healthcontroller_readyz1.md) - [Get stake.fish Babylon Baby validator information](https://docs.stake.fish/reference/babylonbabycontroller_getvalidator_v1.md): Retrieve detailed information about the stake.fish Babylon Baby validator. **Validator Information Includes:** - Validator operator address and display name - Commission rates (current, maximum, max change rate) - Voting power and total delegated tokens - Validator status (bonded, unbonding, unbonded) - APR/APY calculations for staking rewards - Unbonding period and network parameters - Validator uptime and performance metrics **Use Cases:** - Display validator details in staking interfaces - Calculate potential rewards before delegating - Verify validator status and performance - Show unbonding period and other constraints - [Get all unbonding delegations for a Babylon Baby delegator](https://docs.stake.fish/reference/babylonbabycontroller_getunbondingdelegations_v1.md): Retrieve detailed information about all active and completed unbonding delegations for a specific Babylon Baby delegator address with the stake.fish validator. **Unbonding Process:** - Tokens do not earn rewards during unbonding - Tokens are automatically available after completion time **Entry States:** - Active unbonding: isCompleted = false - Completed unbonding: isCompleted = true **Balance Fields:** - initialBalance: Original amount when unbonding started - remainingBalance: Current amount (may be reduced if validator was slashed) - [Get delegations and staking positions for a Babylon Baby address](https://docs.stake.fish/reference/babylonbabycontroller_getstakes_v1.md): Retrieve all staking-related information for a Babylon Baby delegator address. **Returns Information About:** - Active delegations with validators (bonded stakes) - Pending unbonding delegations (with completion times) - Active redelegations (validator switches in progress) - Staking performance metrics (APR/APY) **Delegation States:** - **Bonded**: Active delegations earning rewards - **Unbonding**: Delegations in unbonding period - **Redelegating**: Tokens being moved between validators **Important Notes:** - Rewards can be claimed while delegation remains active - [Prepare a delegation transaction](https://docs.stake.fish/reference/babylonbabycontroller_preparedelegatetransaction_v1.md): Prepare an unsigned transaction to stake tokens to earn rewards from a validator. **Important Notes:** • Sufficient balance required for delegation amount + gas fees • Tokens become bonded and rewards start accruing next block • Can undelegate anytime (unbonding period applies) • Minimum delegation amounts may apply - [Prepare an undelegation transaction](https://docs.stake.fish/reference/babylonbabycontroller_prepareundelegatetransaction_v1.md): Prepare an unsigned transaction to unstake tokens and begin the unbonding period. **Important Notes:** • Requires active delegation with stake.fish validator • Begins unbonding period, stops earning rewards immediately • Tokens become available after the unbonding period completes • Pending rewards are automatically claimed - [Prepare a redelegation transaction](https://docs.stake.fish/reference/babylonbabycontroller_prepareredelegatetransaction_v1.md): Prepare an unsigned transaction to move delegation from another validator to stake.fish instantly. **Important Notes:** • Switch to stake.fish validator without unbonding penalty or delay • Requires active delegation with a non-stake.fish validator • Tokens move to stake.fish immediately, continue earning rewards • Cooldown before re-redelegating same tokens • Special feature: Use amount="0" to redelegate the entire delegation amount - [Prepare a rewards claim transaction](https://docs.stake.fish/reference/babylonbabycontroller_prepareclaimrewardstransaction_v1.md): Prepare an unsigned transaction to claim accumulated staking rewards. **Important Notes:** • Rewards transferred to balance, delegation principal unchanged • Rewards available next block • Can claim from multiple validators in single transaction - [Broadcast a signed Babylon Baby transaction](https://docs.stake.fish/reference/babylonbabycontroller_broadcasttransaction_v1.md): Submit a signed transaction to the Babylon Baby network for execution. **Broadcast Process:** 1. Transaction is validated by network nodes 2. If valid, transaction enters the mempool 3. Block producers include transaction in next block 4. Transaction is executed and state is updated **Broadcast Modes:** - **sync** (recommended): Returns after CheckTx validation, includes transaction hash - **async**: Returns immediately without validation (fastest) - **block**: Waits for transaction to be included in a block (slowest) **After Broadcasting:** - Use the returned transaction hash to check status - Transaction may take a few seconds to be included in a block - Failed transactions still consume gas fees - Monitor transaction status for final confirmation **Common Failure Reasons:** - Insufficient gas or fees - Invalid signature or malformed transaction - Account sequence mismatch (transaction replay) - Insufficient balance for operation - Validator-specific constraints (delegation limits, etc.) - [Get Babylon Baby transaction status and details](https://docs.stake.fish/reference/babylonbabycontroller_gettransactionstatus_v1.md): Retrieve the current status and detailed information for a Babylon Baby (BABY) transaction. **Transaction States:** - **pending**: Transaction submitted but not yet included in a block - **success**: Transaction executed successfully and included in a block - **failed**: Transaction failed during execution (still consumes gas) **Response Information:** - Transaction hash and current status - Block height and confirmation count - Gas usage (actual vs requested) - Transaction fees paid - Detailed error information for failed transactions - Events emitted during transaction execution **Confirmation Levels:** - 1+ confirmations: Transaction is included in blockchain - 6+ confirmations: Generally considered safe for most purposes - 20+ confirmations: High security for large value transactions **Use Cases:** - Poll transaction status after broadcasting - Verify transaction was executed successfully - Retrieve transaction receipt and event logs - Debug failed transactions - Calculate actual costs and gas usage - [Get Babylon Baby staking rewards summary for stake.fish validator](https://docs.stake.fish/reference/babylonbabycontroller_getrewardssummary_v1.md): Retrieve aggregated rewards summary for the stake.fish Babylon Baby validator over a specified time window. **Summary Includes:** - Total delegations to the validator - Annual Percentage Rate (APR) for staking - Validator commission rate - Delegator count **Caching:** - Results are cached until midnight UTC to optimize performance - Cache is automatically invalidated and refreshed daily at 00:00 UTC **Use Cases:** - Display validator performance metrics - Calculate expected returns for delegators - Monitor commission rate changes - [Get rewards and APR stats for a specific Babylon Baby delegator](https://docs.stake.fish/reference/babylonbabycontroller_getdelegatorstats_v1.md): Retrieve rewards and APR statistics for a delegator with the stake.fish validator. **Stats Include:** - Pending rewards available for claiming - Annual Percentage Rate (APR) based on validator performance **Use Cases:** - Display delegator's current pending rewards - Calculate estimated future rewards based on historical APR - Monitor validator performance over time **Note:** For delegation amounts and unbonding information, use the /stakes/:address endpoint - [Get Total Value Locked (TVL) for the organization](https://docs.stake.fish/reference/babylonbabycontroller_gettvl_v1.md): Retrieve the total value of active delegations tracked for the calling organization. **TVL Calculation:** - Aggregates all successful delegate and undelegate blockchain events for the organization - TVL = sum of delegate amounts minus sum of undelegate amounts, per delegator - Only delegators with a positive net delegation are included **Response Includes:** - Total Value Locked in ubbn and BABY - Number of active delegators (unique addresses with positive net delegation) - Last synced block number and timestamp from the sync job - [Get Total Value Locked (TVL) for the organization](https://docs.stake.fish/reference/babylonbtccontroller_gettvl_v1.md): Retrieve the total value of active BTC delegations tracked for the calling organization. **TVL Calculation:** - Aggregates all successful create_btc_delegation blockchain events for the organization - TVL = sum of staking amounts in satoshis **Response Includes:** - Total Value Locked in satoshis and BTC (human-readable) - Number of active delegators (unique addresses with positive net delegation) - Last synced block number and timestamp from the babylon-btc-sync job - [Get stake.fish finality provider information](https://docs.stake.fish/reference/babylonbtccontroller_getvalidator_v1.md): Retrieve detailed information about the stake.fish finality provider on the Babylon BTC network. - [Get BTC staking rewards summary](https://docs.stake.fish/reference/babylonbtccontroller_getrewardssummary_v1.md): Retrieve rewards summary including APR, finality provider info, and TVL for the stake.fish finality provider. - [Get pending BTC staking rewards for a delegator](https://docs.stake.fish/reference/babylonbtccontroller_getdelegatorrewards_v1.md): Retrieve pending and withdrawn rewards for a Babylon address from the incentive module reward gauge. - [Prepare BTC staking PSBTs and POP message (Exchange 1)](https://docs.stake.fish/reference/babylonbtccontroller_preparestake_v1.md): Prepare unsigned PSBTs and a Proof of Possession message for BTC staking on Babylon. **This is Exchange 1 of the BTC staking flow:** 1. `POST transactions/prepare/pre-delegate` — Server creates staking TX, slashing PSBTs, unbonding PSBTs, and a POP message 2. Client signs the PSBTs and POP message with their BTC key 3. `POST transactions/prepare/delegate` — Server assembles the MsgCreateBTCDelegation 4. `POST transactions/broadcast/babylon` — Client signs and broadcasts the Babylon transaction 5. `GET stakes/:txId/status` — Client polls until delegation reaches `VERIFIED` or `ACTIVE` state 6. `POST transactions/broadcast/bitcoin` — Client broadcasts the signed Bitcoin staking transaction **Inputs Required:** - Staker's BTC address and x-only public key - Staking amount (satoshis), timelock (blocks), and fee rate (sat/vB) - Staker's Babylon address (bbn prefix) **Returns:** - Slashing and unbonding slashing PSBTs to sign - POP message and its expected signature type - Staking PSBT to sign - Session state to pass back in step 3 - `bitcoinStakingTxId` to poll delegation status in step 5 - [Build MsgCreateBTCDelegation from signed BTC items (Exchange 2)](https://docs.stake.fish/reference/babylonbtccontroller_builddelegation_v1.md): Assemble a MsgCreateBTCDelegation Babylon transaction from signed BTC items. **This is step 3 of the BTC staking flow:** 1. `POST transactions/prepare/pre-delegate` — Server creates staking TX, slashing PSBTs, unbonding PSBTs, and a POP message 2. Client signs the PSBTs and POP message with their BTC key 3. `POST transactions/prepare/delegate` — Server assembles the MsgCreateBTCDelegation *(you are here)* 4. `POST transactions/broadcast/babylon` — Client signs and broadcasts the Babylon transaction 5. `GET stakes/:txId/status` — Client polls until delegation reaches `VERIFIED` or `ACTIVE` state 6. `POST transactions/broadcast/bitcoin` — Client broadcasts the signed Bitcoin staking transaction **Inputs Required:** - Session state from step 1 - Signed slashing PSBT, signed unbonding slashing PSBT - POP signature (base64) - Signed staking PSBT - Original staking parameters (address, public key, amount, timelock) **Returns:** - Unsigned Babylon (Cosmos) transaction in base64 (to be signed with Babylon key in step 4) - Signed Bitcoin staking transaction in hex (to be broadcast in step 6, after delegation is verified in step 5) - [Prepare a BTC staker rewards claim transaction](https://docs.stake.fish/reference/babylonbtccontroller_withdrawrewards_v1.md): Prepare an unsigned Babylon transaction to claim accumulated BTC staking rewards. **Inputs Required:** - Staker's Babylon address (bbn prefix) - Optional memo **Returns:** - Base64-encoded unsigned Babylon transaction to be signed and broadcast via /transactions/broadcast/babylon - [Prepare an early unbonding PSBT for an active BTC delegation](https://docs.stake.fish/reference/babylonbtccontroller_prepareundelegate_v1.md): Prepare an unsigned unbonding PSBT that spends the staking output via the unbonding path. **Inputs Required:** - Staking transaction hash (hex) identifying the active delegation - Staker's BTC address **Returns:** - Unsigned unbonding PSBT hex (to be signed by the staker) - Raw unbonding transaction hex - Original staking transaction hash After signing the PSBT, broadcast the signed transaction via `POST /transactions/broadcast/bitcoin`. - [Broadcast signed Babylon transaction (step 4)](https://docs.stake.fish/reference/babylonbtccontroller_broadcastbabylontx_v1.md): Broadcast a signed Babylon (Cosmos) transaction containing MsgCreateBTCDelegation. **This is step 4 of the BTC staking flow:** 1. `POST transactions/prepare/pre-delegate` — Server prepares PSBTs and POP message 2. Client signs the PSBTs and POP message with their BTC key 3. `POST transactions/prepare/delegate` — Server assembles the MsgCreateBTCDelegation 4. `POST transactions/broadcast/babylon` — Client signs and broadcasts the Babylon transaction *(you are here)* 5. `GET stakes/:txId/status` — Client polls until delegation reaches `VERIFIED` or `ACTIVE` state 6. `POST transactions/broadcast/bitcoin` — Client broadcasts the signed Bitcoin staking transaction **Important:** After this step succeeds, poll `GET stakes/:txId/status` using the `bitcoinStakingTxId` from step 1 until the delegation reaches `VERIFIED` or `ACTIVE` before broadcasting the Bitcoin transaction in step 6. - [Broadcast signed BTC staking transaction (step 6)](https://docs.stake.fish/reference/babylonbtccontroller_broadcastbitcointx_v1.md): Broadcast a signed BTC staking transaction to the Bitcoin network. **This is step 6 (final step) of the BTC staking flow:** 1. `POST transactions/prepare/pre-delegate` — Server prepares PSBTs and POP message 2. Client signs the PSBTs and POP message with their BTC key 3. `POST transactions/prepare/delegate` — Server assembles the MsgCreateBTCDelegation 4. `POST transactions/broadcast/babylon` — Client signs and broadcasts the Babylon transaction 5. `GET stakes/:txId/status` — Client polls until delegation reaches `VERIFIED` or `ACTIVE` state 6. `POST transactions/broadcast/bitcoin` — Client broadcasts the signed Bitcoin staking transaction *(you are here)* **Important:** Only broadcast the Bitcoin staking transaction after the delegation has been verified in step 5. Broadcasting before verification may result in lost funds. - [Check Babylon transaction status](https://docs.stake.fish/reference/babylonbtccontroller_getbabylontxstatus_v1.md): Query the status of a Babylon (Cosmos) transaction by its hash. **Possible Statuses:** - `pending` — Transaction submitted but not yet included in a block - `success` — Transaction included and executed successfully - `failed` — Transaction included but execution failed - [Check Bitcoin transaction status](https://docs.stake.fish/reference/babylonbtccontroller_getbitcointxstatus_v1.md): Query the status of a Bitcoin transaction by its hash via the mempool API. **Possible Statuses:** - `pending` — Transaction not yet confirmed on the Bitcoin network - `success` — Transaction confirmed in a block - [List active BTC staking delegations for a staker](https://docs.stake.fish/reference/babylonbtccontroller_getstakes_v1.md): Retrieve active BTC staking delegations for a given Babylon address from the Babylon staking API. **Input:** - Babylon address (bbn1...) as a path parameter **Returns:** - Array of active delegations with staking details and finality provider info - Each delegation's `stakingTxHash` can be used with `POST transactions/prepare/undelegate` for early unbonding - [Check BTC staking delegation status via Babylon staking API](https://docs.stake.fish/reference/babylonbtccontroller_getbabylonstakingstatus_v1.md): Query the delegation status of a BTC staking transaction on the Babylon network using the bitcoinStakingTxId returned from pre-delegate. **Possible States:** - `NOT_FOUND` — Delegation not yet visible on the Babylon staking API - `PENDING` — Delegation submitted, awaiting covenant signatures - `VERIFIED` — Covenant signatures received, delegation verified - `ACTIVE` — Delegation is active and earning rewards - [Prepare a createPod transaction](https://docs.stake.fish/reference/eigenlayercontroller_createpod_v1.md): Encodes an EigenPodManager.createPod() call. Creates a new EigenPod for the staker. Each wallet can only have one EigenPod. If a pod already exists, the on-chain transaction will revert. Returns an unsigned transaction for client-side signing and broadcasting. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare a delegate transaction](https://docs.stake.fish/reference/eigenlayercontroller_delegate_v1.md): Encodes DelegationManager.delegateTo(operator, ...). Delegates all staker shares to one operator. Note: delegation is all-or-nothing. Switching operators requires undelegating first (14-day escrow). The operator is automatically set to the Stakefish operator — no `operator` parameter is accepted. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare an undelegate transaction](https://docs.stake.fish/reference/eigenlayercontroller_undelegate_v1.md): Encodes DelegationManager.undelegate(staker). Removes delegation and auto-queues all withdrawals. Shares enter a 14-day escrow period (100,800 blocks) before they can be completed. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare a queueWithdrawals transaction](https://docs.stake.fish/reference/eigenlayercontroller_queuewithdrawal_v1.md): Encodes DelegationManager.queueWithdrawals([{strategies, depositShares, withdrawer}]). Queues a withdrawal for the specified strategies and share amounts. Shares enter a ~14-day escrow. After escrow, use POST /transactions/prepare/complete-withdrawal to complete all eligible withdrawals in one batch. The request body expects a `shares` array (not `sharesGwei`). Values must match the unit returned by the stakes endpoint's `shares` field. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare a completeQueuedWithdrawals transaction](https://docs.stake.fish/reference/eigenlayercontroller_completewithdrawals_v1.md): Encodes DelegationManager.completeQueuedWithdrawals(withdrawals, tokens, receiveAsTokens). Completes completable withdrawals for the staker in a single batch transaction. Token addresses are resolved automatically. Can only be called after the escrow period has passed for at least one withdrawal. Set undelegatedOnly=true to only complete withdrawals from the undelegation queue (for redelegation). **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare a batched validator consolidation transaction](https://docs.stake.fish/reference/eigenlayercontroller_consolidate_v1.md): Resolves the staker's EigenPod and encodes EigenPod.requestConsolidation(requests) — a single transaction that consolidates N restaked validators. The pod forwards each request to the EIP-7251 consolidation predeploy with the pod itself as the caller, so depositor attribution is correct by construction. Set sourcePubkey equal to targetPubkey to switch a validator from 0x01 to 0x02 (compounding) withdrawal credentials. Otherwise the source validator is consolidated into the target, which must already have 0x02 credentials. All referenced validators must have their withdrawal credentials pointed at the staker's EigenPod. The transaction value covers the per-request predeploy fee plus a 10% buffer; the pod refunds any excess. Only the pod owner or proof submitter can execute the transaction — it reverts otherwise. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare a startCheckpoint transaction](https://docs.stake.fish/reference/eigenlayercontroller_startcheckpoint_v1.md): Resolves the staker's EigenPod and encodes EigenPod.startCheckpoint(revertIfNoBalance). Initiates an accounting checkpoint to update the pod's balance on-chain. Requires the staker to have a deployed EigenPod. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare verifyWithdrawalCredentials transactions](https://docs.stake.fish/reference/eigenlayercontroller_verifywithdrawalcredentials_v1.md): Generates beacon chain Merkle proofs and encodes EigenPod.verifyWithdrawalCredentials(). Returns an array of transactions batched by ~60 validators per tx. Must be executed in order. Validators are auto-detected from the staker's EigenPod — no `validatorPubkeys` parameter is needed. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare verifyCheckpointProofs transactions](https://docs.stake.fish/reference/eigenlayercontroller_verifycheckpointproofs_v1.md): Generates beacon chain proofs and encodes EigenPod.verifyCheckpointProofs(). Returns an array of transactions (batched proofs). Must be executed in order after startCheckpoint. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Prepare a claimRewards transaction](https://docs.stake.fish/reference/eigenlayercontroller_claimrewards_v1.md): Encodes RewardsCoordinator.processClaim(claim, recipient). Rewards are sent to the staker address. Merkle roots are posted weekly (Tuesdays) with a 7-day activation delay before they are claimable. **Nonce handling:** The nonce is computed at call time. If you prepare multiple transactions before broadcasting, they will share the same nonce and only the first will succeed. Broadcast and confirm each transaction before preparing the next. - [Get staker profile](https://docs.stake.fish/reference/eigenlayercontroller_getstaker_v1.md): Returns the EigenPod address and delegation status for a staker. Pod address is read from EigenPodManager.ownerToPod(). Delegation status is read from DelegationManager. Returns null for eigenPod if no pod has been deployed, and null for delegatedTo if not currently delegated. - [Get withdrawal queue for a staker](https://docs.stake.fish/reference/eigenlayercontroller_getwithdrawals_v1.md): Returns all queued and completable withdrawals for a staker. Completable withdrawals (escrow elapsed) are listed first. - [Get claimable rewards for a staker](https://docs.stake.fish/reference/eigenlayercontroller_getrewards_v1.md): Returns summarized rewards per token: earned, active (in activated roots), claimed, and claimable now. Use the token list from this response with POST /transactions/prepare/claim-rewards.