Kiln docs
Search…
⌃K

Ethereum (ETH): Fetch staking rewards

Fetch Ethereum Staking Rewards easily to make your reportings programmatically.

Stakes

API Objects

Ethereum Stake object

Ethereum Stake is an API object which represents a validation key (ie a 32ETH stake) in its current state.
Field
Value Type
Description
validator_address
string
Validator address (BLS format)
state
string (see Ethereum Stake State)
Current state of the stake. See Ethereum Stake Stake below.
activated_at
string
Date when the stake became active (RFC3339 UTC time)
balance
string
Current balance on the consensus layer of the validator (wei)
effective_balance
string
Effective balance used by the consensus layer as a base for consensus rewards (wei)
consensus_rewards
string
Current consensus rewards of the validator (wei)
execution_rewards
string
Total execution rewards earned by the validator fee recipient (wei)
rewards
string
Total consensus and execution rewards earned by the validator (wei)
gross_apy
float
Gross Annual Percentage Yield based on the rewards of the validator until now
deposit_tx_sender
string
Ethereum address used to deposit this validator
withdrawal_credentials
string
Withdrawal Credential of the validator
execution_fee_recipient
string
Ethereum address that received the last block proposal transaction fees and mev rewards

Ethereum Stake State enum

Ethereum Stake State represents the state of a validator on the beacon chain (consensus-layer).
Value
Description
unknown
Not on chain and unknown to Kiln
not_staked
Part of Kiln but not yet staked
deposit_in_progress
Deposit TX was/were detected on the execution layer
pending_initialized*
First deposit was processed but more deposits are needed to reach 32 ETH
pending_queued*
Properly funded and being processed by the consensus layer
active_ongoing*
Part of the consensus and expected to be attesting/proposing blocks
active_exiting*
Voluntary exit was triggered but still part of the consensus, scheduled to exit
active_slashed*
Slashed but still part of the consensus, scheduled to exit
exited_unslashed*
Exited without being slashed
exited_slashed*
Exited due to a slash
withdrawal_possible*
Exited and is allowed to move funds
withdrawal_done*
Exited and has moved funds
¹ These states follow the validator status specification.

Queries

SDK

/* async getStakesByValidators(validatorAddresses: string[]): Promise<EthStake[]> */
const stakes = await k.eth.getStakesByValidators(['abcd...']);
/* async getStakesByWallets(walletAddresses: string[]): Promise<EthStake[]> */
const stakes = await k.eth.getStakesByWallets(['abcd...']);
/* async getStakesByAccounts(accountIds: string[]): Promise<EthStake[]> */
const stakes = await k.eth.getStakesByAccounts(['abcd...']);

API

get
https://api.kiln.fi/v1
/eth/stakes
Retrieve Ethereum Stakes, for an Account, a Wallet or a Pubkey

Rewards

API Objects

Ethereum Reward object

Ethereum reward represents the amount of reward that a validator received for a given day.
Field
Value type
Description
date
string
Date (RFC3339 UTC time)
consensus_rewards
string
Consensus rewards earned that day in wei
execution_rewards
string
Execution rewards earned that day in wei
gross_apy
float
Gross APY
stake_balance
string
Staked balance that generated those rewards
cl_apy
float
Consensus layer APY
el_apy
float
Execution layer APY

Queries

SDK

/* async getRewardsByValidators(validatorAddresses: string[], startDay?: string, endDay?: string): Promise<EthReward[]> */
const rewards = await k.eth.getRewardsByValidators(['abcd...'], '2022-10-01', '2022-10-05');
/* async getRewardsByWallets(walletAddresses: string[], startDay?: string, endDay?: string): Promise<EthReward[]> */
const rewards = await k.eth.getRewardsByWallets(['abcd...']);
/* async getRewardsByAccounts(accountIds: string[], startDay?: string, endDay?: string): Promise<EthReward[]> */
const rewards = await k.eth.getRewardsByAccounts(['abcd...']);

API

get
https://api.kiln.fi/v1
/eth/rewards
Retrieve Ethereum Rewards, for an Account, a Wallet or a Pubkey