getStakeMinimumDelegation
Returns the stake minimum delegation, in lamports.
Common use cases
| Stake account creation validation | Validate user input meets network requirements before creating stake accounts. Prevents transaction failures by ensuring stake amount exceeds the minimum delegation threshold (currently 1 SOL). |
| Total balance calculation | Calculate complete funding requirements for new stake accounts. Combine with getMinimumBalanceForRentExemption to determine: total required = rent exemption reserve + minimum delegation amount. |
| Stake pool parameter validation | Validate stake pool deposits and delegation parameters meet network minimums. Essential for liquid staking protocols and automated staking services to prevent invalid operations. |
Parameters
config (object, optional)
Configuration object containing the following fields:
Fields:
commitment(string): The commitment describes how finalized a block is at that point in time. See Configuring State Commitment.
Request
- cURL
- JavaScript
- Python
curl https://solana-mainnet.api.syndica.io/api-key/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getStakeMinimumDelegation",
"params": [
{
"commitment": "finalized"
}
]
}'
// Using fetch
const response = await fetch('https://solana-mainnet.api.syndica.io/api-key/YOUR_API_KEY', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
"jsonrpc": "2.0",
"id": 1,
"method": "getStakeMinimumDelegation",
"params": [
{
"commitment": "finalized"
}
]
})
});
const data = await response.json();
console.log(data);
import requests
import json
url = 'https://solana-mainnet.api.syndica.io/api-key/YOUR_API_KEY'
headers = {'Content-Type': 'application/json'}
data = {
"jsonrpc": "2.0",
"id": 1,
"method": "getStakeMinimumDelegation",
"params": [
{
"commitment": "finalized"
}
]
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
Replace mainnet with devnet in the URL to query devnet instead.
Response
{
"jsonrpc": "2.0",
"result": {
"context": { "slot": 501 },
"value": 1000000000
},
"id": 1
}
Response Fields
Return value: u64
The stake minimum delegation, in lamports
FAQ and Troubleshooting
Why does delegation fail with "insufficient funds" even when I have enough SOL?
Stake accounts require both rent exemption reserve (~0.00228 SOL) AND the minimum delegation (1 SOL). Use getMinimumBalanceForRentExemption(StakeStateV2::size_of()) + getStakeMinimumDelegation() to calculate total required.
Does the minimum delegation amount change?
Yes, historically. The stake_raise_minimum_delegation_to_1_sol feature gate increased it from 1 lamport to 1 SOL on mainnet. Future governance could adjust this value, so always query programmatically rather than hardcoding.
Can I delegate less than the minimum if I'm splitting an existing account?
No. Each delegation must meet the minimum threshold. When splitting stake accounts, both the original and new account must maintain at least the minimum delegation amount if they remain delegated.
Related Methods
getMinimumBalanceForRentExemption
Returns rent exemption amount for account data size. Use together when creating stake accounts: rent minimum + stake minimum = total required balance.
getBalance
Returns account SOL balance in lamports. Compare with getStakeMinimumDelegation result to validate sufficient funds before stake delegation transactions.
getAccountInfo
Returns full account details including lamports balance. Verify stake account meets minimum delegation after creation by checking its balance against this method's result.
External Resources
- Solana Official Documentation
- Solana Program Library - Stake Program - Official stake program implementation including minimum delegation logic and feature gates. Reference for understanding delegation requirements and constraints.