Staking
Stake API Returns an unsigned transaction to delegate SOL from your wallet to a validator.
Balance API Returns the current balance and status of a wallet or stake account.
API Reference
Stake Request
POST /api/v1/stake
Submits a stake request to generate an unsigned transaction. This transaction needs to be signed by the private key of the wallet address and broadcasted to the network to trigger consolidation. This request also creates a stake account and user will have to pay one time rent fee for stake account creation.
Headers
x-api-key*
String
API Key provided by Luganodes
Request Body
validatorPubKey*
String
Public address of validator
walletPubKey*
String
Wallet address
amount*
Number
Stake amount in lamports. 1 SOL = 10^9 Lamports
Sample Request
Types
Stake Response Object
validatorPubKey
Public address of validator
String
walletPubKey
Public address of user wallet
String
stakeAccountPubKey
Public address of stake account
String
unsignedTransactionBase64
Unsigned transaction which needs to be signed with the private key of the user wallet
String
stakeAmount
Amount of SOL to be staked
Number
rentAmount
Rent used for creation for stake account. Rent is required to be paid for creation of stake account and is a one time fee.
Number
totalAmount
Total SOL to be deducted from balance. It is the sum of stake amount and rent.
Number
Get Delegator Balance
POST api/v1/balance
Returns the list of stake accounts associated with a wallet address or for specified stake accounts. Each stake account now includes detailed balance, authorities, and epoch information.
Headers
x-api-key*
String
API Key provided by Luganodes
Request Body
walletPubKey
String (optional)
Public address of user wallet
stakeAccountPubKeys
Array<String> (optional)
List of stake account addresses to query
⚠️ Validation Rule
Exactly one of walletPubKey or stakeAccountPubKeys must be provided. If both are present, return 400 Bad Request.
200: OK — Balance Response Object
When queried by wallet
When queried by stake accounts
Sample Requests
By Wallet
By Multiple Stake Accounts
Response Object Fields
walletPubkey
Public address of the user wallet (present only for wallet queries)
String
balance
Wallet SOL balance (lamports)
Number
stakeAccounts
List of stake accounts with details
Array<Object>
Stake Account Object
pubkey
Public address of stake account
String
status
"active" or "inactive"
String
balance
SOL balance details
Object
→ total_sol
Total SOL in stake account
String
→ active_sol
Active staked SOL
String
→ inactive_sol
Inactive SOL
String
→ rewards_sol
Earned rewards
String
authorities
Stake and withdraw authorities
Object
→ stake_authority
Stake authority address
String
→ withdraw_authority
Withdraw authority address
String
epochs
Epoch metadata
Object
→ activation_epoch
Epoch when stake became active
Number / null
→ deactivation_epoch
Epoch when stake will deactivate
Number / null
→ current_epoch
Current epoch
Number
voter
Validator vote account address
String
created_at
Stake account creation timestamp (UTC)
String
updated_at
Last update timestamp (UTC)
String
Get Delegator Rewards
GET /api/v1/rewards
Returns aggregated rewards for a delegator address or specific stake accounts over a given time range. Rewards are grouped by the specified aggregation period (epoch, weekly, or monthly).
Query Parameters
start_time *
Number
Start of the query period (Unix timestamp)
end_time *
Number
End of the query period (Unix timestamp)
period
String
Aggregation period — defaults to epoch
Enum: epoch, weekly, monthly
wallet_address
String
Delegator wallet address
stake_accounts
Array<String>
One or more stake account addresses
⚠️ Validation Rules
Exactly one of
wallet_addressorstake_accountsmust be provided.If both are provided → return
400 Bad Request.The difference between
end_timeandstart_timemust not exceed the selected period.
200: OK — Rewards Response Object
Response Object
delegator_address
Delegator wallet or stake account queried
String
period
Aggregation interval
String
total_rewards
Total rewards during the requested range
Object
→ sol
Total rewards in SOL
String
rewards
List of reward entries for each period (epoch/day/week/month)
Array<Object>
Reward Entry Object
epoch
Epoch number (for period=epoch)
Number
time_start
Start timestamp of the interval (UTC)
String
time_end
End timestamp of the interval (UTC)
String
rewards_earned
Total rewards earned in the period
Object
→ sol
Amount in SOL
String
reward_types
Breakdown of reward categories
Object
→ inflation_rewards.sol
Rewards from inflation
String
→ mev_rewards.sol
Rewards from MEV (if applicable)
String
starting_balance_sol
Balance at start of period
String
ending_balance_sol
Balance at end of period
String
Metadata Object
query_time
ISO timestamp when query was executed
String
epochs_included
Number of epochs included in results
Number
Sample Request
By Wallet
By Multiple Stake Accounts
Get Delegator History
GET /api/v1/history/events
Returns a detailed chronological log of all staking-related events for a delegator wallet or specific stake accounts within a given time range. Includes summary statistics, validator participation, and pagination support.
Query Parameters
start_time *
Number
Start of the query period (Unix timestamp)
end_time *
Number
End of the query period (Unix timestamp)
wallet_address
String
Delegator wallet address (use either this or stake_accounts)
stake_accounts
Array<String>
One or more stake account addresses (use either this or wallet_address)
page
Number
Page number for pagination. Default: 1
page_size
Number
Number of events per page. Default: 50
excluded_event_type
Array<String>
Event types to exclude from results (can take multiple values)
⚠️ Validation
Provide exactly one of
wallet_addressorstake_accounts. If both are present → 400 Bad Request.Ensure
end_time≥start_time(difference not excessively large to avoid truncation).
200: OK — Response
Response Object
address
Wallet or stake account address queried
String
time_range.start
Start timestamp (UTC)
String
time_range.end
End timestamp (UTC)
String
summary
Aggregated statistics over range
Object
→ total_rewards_earned.sol
Total rewards (SOL)
String
→ starting_balance.sol
Starting SOL balance
String
→ ending_balance.sol
Ending SOL balance
String
→ epochs_active
Number of epochs stake was active
Number
→ status_changes
Number of status transitions
Number
history
Chronological list of staking events
Array<Object>
validators
Validators interacted with during the period
Array<Object>
History Event Object
event_type
Event type (account_created, delegation_activated, rewards_earned, etc.)
String
timestamp
UTC time of event
String
epoch
Epoch when event occurred
Number
details
Contextual event details
Object
Validator Object
vote_account
Validator vote account address
String
identity
Validator identity address
String
name
Validator name (if known)
String
epochs_delegated
Number of epochs delegated to this validator
Number
total_rewards_from_validator.sol
Rewards earned from this validator (SOL)
String
Pagination Object
page
Current page number
Number
page_size
Items per page
Number
total_events
Total number of events found
Number
has_more
Whether more pages exist
Boolean
Metadata Object
query_time
API query timestamp (UTC)
String
Sample Requests
By Wallet
By Multiple Stake Accounts
Last updated