Solana Staking API
Seamless Integration for Institutional Solana Staking
Solana staking APIs provide developers with powerful tools to interact with the Solana blockchain's staking functionality. These APIs allow users to delegate SOL tokens to validators, monitor staking rewards, track validator performance, and manage stake accounts programmatically. Ideal for building wallets, staking dashboards, or automated staking strategies, these APIs offer fast, scalable access to staking data and operations on one of the highest-performance blockchains in the ecosystem.
SolanaStakeIntent
POST
SolanaStakeIntent
Returns an unsigned transaction that can be used to delegate your tokens to the validator specified in the request.
Content-Type
application/json
Authorization
<API Key>
Body
### 🧪 Example Mutation
```graphql
mutation SolanaStakeIntent {
SolanaStakeIntent(
input: {
network: "devnet", # String!
amount: "1000000000", # String!
delegator_address: "5xo1...", # String!
staking_authority: "5xo1...", # String!
withdrawal_authority: "5xo1...", # String
plan_id: "plan_Wgx..." # String
}
) {
... on StakingResponse {
stake_intent_id
customerId
network
plan_id
protocol
solana {
amount
expiration_time
stake_account_public_key
stake_id
staking_authority
unsigned_transaction
validator_public_key
withdrawal_authority
}
}
... on ErrorResponse {
__typename
code
message
}
}
}
Response
{
"data": {
"SolanaStakeIntent": {
"stake_intent_id": "stake_intent_Wgx98Rbi8nQuL9ddn3mTk1",
"customer_id": "SatoshiNakamoto-xUYJbPw9hw",
"plan_id": "plan_Wgx98Rbi8nQuL9ddn3mTk1",
"protocol": "solana",
"network": "mainnet",
"solana": {
"stake_id": "stake_Wgx98Rbi8nQuL9ddn3mTk1",
"amount": "100",
"validator_public_key": "0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c",
"staking_authority": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"withdrawal_authority": "0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c",
"stake_account_public_key": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"unsigned_transaction": "0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120087fed394b43849eebef1e88873cd9efdbe33136656e5148e659b8b2f33625d40000000000000000000000000000000000000000000000000000000000000030b81748644e23c4d950f9dd709f3eb73d5eacd9657997e1d9dde7c4ebd8a6519ecb9d0a7fb603d3b68e023278f9650122000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020010000000000000000000000c509bb854c526af4cee5e037089f7aa8e091d8870000000000000000000000000000000000000000000000000000000000000060b36b79b4b206c0310472c117fa40c05342b5dc3e89f98f42c9da3ce6450d4c603cad55248017fd4eca3ab277cca64569193e4d487f5b2ea78a2bcdc81926c313c05842a3af318967a775783bba22519e8b8886587efa99aa7dab5784f792b187\n",
"expiration_time": 1689939023
}
}
}
}
SolanaDeactivateIntent
### 🧪 Example Mutation
```graphql
mutation SolanaDeactivateIntent {
SolanaDeactivateIntent(
input: {
network: "devnet", # String!
amount: "1000000000", # String!
withdrawal_authority: "5xo1..." # String
staking_authority: "5xo1..." # String
delegator_address: "5xo1..." # String
}
) {
... on DeactivateResponse {
deactivate_intent_id
customerId
protocol
network
walletAddress
solana {
total_deactivated_amount
walletAddress
deactivates {
unsigned_transaction
stake_account_authority
stake_account_address
withdrawal_authority
stake_id
amount
expiration_time
}
splits {
unsigned_transaction
stake_account_authority
new_stake_account_address
new_stake_id
splitted_stake_account_address
splitted_stake_id
amount
}
}
}
... on ErrorResponse {
code
message
}
}
}
Response
{
"data": {
"SolanaDeactivateIntent": {
"deactivate_intent_id": "4ba06e89-8c29-483e-ac36-318de5aa7364",
"customer_id": "SatoshiNakamoto-xUYJbPw9hw",
"protocol": "solana",
"network": "mainnet",
"solana": {
"deactivates": [
{
"unsigned_transaction": "0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120087fed394b43849eebef1e88873cd9efdbe33136656e5148e659b8b2f33625d40000000000000000000000000000000000000000000000000000000000000030b81748644e23c4d950f9dd709f3eb73d5eacd9657997e1d9dde7c4ebd8a6519ecb9d0a7fb603d3b68e023278f9650122000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020010000000000000000000000c509bb854c526af4cee5e037089f7aa8e091d8870000000000000000000000000000000000000000000000000000000000000060b36b79b4b206c0310472c117fa40c05342b5dc3e89f98f42c9da3ce6450d4c603cad55248017fd4eca3ab277cca64569193e4d487f5b2ea78a2bcdc81926c313c05842a3af318967a775783bba22519e8b8886587efa99aa7dab5784f792b187\n",
"stake_account_authority": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"stake_account_address": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"withdrawal_authority": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"stake_id": "stake_Wgx98Rbi8nQuL9ddn3mTk1",
"amount": "100",
"expiration_time": 1689939023
}
],
"splits": [
{
"unsigned_transaction": "0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120087fed394b43849eebef1e88873cd9efdbe33136656e5148e659b8b2f33625d40000000000000000000000000000000000000000000000000000000000000030b81748644e23c4d950f9dd709f3eb73d5eacd9657997e1d9dde7c4ebd8a6519ecb9d0a7fb603d3b68e023278f9650122000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020010000000000000000000000c509bb854c526af4cee5e037089f7aa8e091d8870000000000000000000000000000000000000000000000000000000000000060b36b79b4b206c0310472c117fa40c05342b5dc3e89f98f42c9da3ce6450d4c603cad55248017fd4eca3ab277cca64569193e4d487f5b2ea78a2bcdc81926c313c05842a3af318967a775783bba22519e8b8886587efa99aa7dab5784f792b187\n",
"stake_account_authority": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"new_stake_account_address": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"new_stake_id": "stake_Wgx98Rbi8nQuL9ddn3mTk1",
"splitted_stake_account_address": "5xot9PVkphiX2adznghwrAuxGs2zeWisNSxMW6hU6Hkj",
"splitted_stake_id": "stake_Wgx98Rbi8nQuL9ddn3mTk1",
"amount": "100"
}
],
"total_deactivated_amount": "100"
},
walletAddress: String
}
}
}
SolanaCancelDeactivateIntent
POST
SolanaCancelDeactivateIntent
Cancels a previously issued deactivation intent by specifying its ID.
Body
### 🧪 Example Mutation
```graphql
mutation SolanaCancelDeactivateIntent {
SolanaCancelDeactivateIntent(
input: {
network: "devnet", # String!
deactivate_intent_id: "204ce7fe-0bab-4a3b-b98b-d082f5770a6c" # String!
}
) {
code
message
}
}
Response
{
data: {
SolanaCancelDeactivateIntent: {
code: 500, # Number
message: "Invalid public key input" # String
}
}
}
SolanaWithdrawalIntent
POST
SolanaWithdrawalIntent
This endpoint is used to request withdrawal transactions that will be executed against available deactivated accounts. If you request more funds than are currently unlocked, the API will return an error indicating the maximum possible withdrawal.
You will receive at least one unsigned transaction (potentially multiple) that needs to be signed in order to complete the withdrawal. Body
### 🧪 Example Mutation
```graphql
mutation SolanaWithdrawalIntent {
SolanaWithdrawalIntent(
input: {
network: "devnet" # String!
amount: "1000000000" # String!
withdrawal_address: "5xo1...", # String!
delegator_address: "5xo1..." # String!
withdrawal_authority: "5xo1..." # String!
}
) {
... on WithdrawalIntentResponse {
withdrawal_intent_id
customerId
protocol
network
solana {
total_withdraw_amount
withdraws {
unsigned_transaction
withdrawal_authority_public_key
stake_account_address
stake_id
amount
expiration_time
}
}
}
... on ErrorResponse {
code
message
}
}
}
Response
{
data: {
SolanaWithdrawalIntent{
withdrawal_intent_id, # String
customerId, # String
protocol, # String
network, # String
solana {
total_withdraw_amount, # String!
withdraws {
unsigned_transaction, # String!
withdrawal_authority_public_key, # String!
stake_account_address, # String!
stake_id, # String!
amount, # String!
expiration_time, # Int!
}
}
}
}
}
SolanaCancelWithdrawlIntent
POST
SolanaCancelWithdrawalIntent
Cancels a previously issued withdrawal intent by specifying its ID. Body
### 🧪 Example Mutation
```graphql
mutation SolanaCancelWithdrawalIntent {
SolanaCancelWithdrawalIntent(
input: {
network: 'devnet', # String!,
intent_id: "..." # String!
}
) {
code
message
}
}
Response
{
data: {
SolanaCancelWithdrawalIntent{
code, # Int!
message # String!
}
}
}
SolanaGetStakeAccounts
POST
SolanaGetStakeAccounts
Retrieve all of the stake accounts.
Body
🧪 Example Query
query SolanaGetStakeAccounts {
SolanaGetStakeAccounts(
input: {
network: null,
walletAddress: null,
page: null,
per_page: null
}
) {
... on Error {
code
message
}
... on GetStakeAccountsResponse {
stake_accounts {
status
amount
stake_account_address
stake_account_authority
withdrawal_authority
delegator_address
vote_account
network
}
pagination {
page
per_page
total
}
}
}
}
Response
{
data: {
SolanaGetStakeAccounts: {
stake_accounts: {
status, # String
amount, # String
stake_account_address, # String
stake_account_authority, # String
withdrawal_authority, # String
delegator_address, # String
vote_account, # String
network, # String
}
pagination: {
page, # Int
per_page, # Int
total # Int
}
}
}
}
SolanaGetDeactivationIntents
POST
SolanaGetDeactivateIntents
Retrieve a list of all outstanding deactivation intents. Body
### 🧪 Example Query
```graphql
query SolanaGetDeactivationIntents{
SolanaGetDeactivationIntents(input: {network: "devnet", walletAddress: ""}) {
... on RetrieveDeactivationResponse {
protocol
network
customerId
solana {
deactivates {
amount
expiration_time
stake_account_address
stake_account_authority
stake_id
unsigned_transaction
withdrawal_authority
}
splits {
amount
new_stake_account_address
new_stake_id
splitted_stake_account_address
splitted_stake_id
stake_account_authority
unsigned_transaction
}
total_deactivated_amount
walletAddress
}
}
... on ErrorResponse {
__typename
code
message
}
}
}
Response
{
data: {
"SolanaGetDeactivationIntents": {
"protocol": "solana",
"network": "devnet",
"customerId": "128554f4-0071-7072-01f8-be5c70e48162",
"solana": [
{
"deactivates": [
{
"amount": "100000000",
"expiration_time": 1746530154,
"stake_account_address": "DunL5cf8DUyC6F8c67EsfJPdbNWixaX9y6yRapiCHwLV",
"stake_account_authority": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU",
"stake_id": "8c24f524-22d0-4af2-af3a-23b6c3b430d2",
"unsigned_transaction": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100020485a99849ac66f619f6d272aa6f58d829072be14f9f2c2b2e329b32547f205f93bfd1b2e4d7c0993647351dbde5da9246d7028ca59865525589970468c4992f1206a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000006a7d51718c774c928566398691d5eb68b5eb8a39b4b6d5c73555b2100000000230947ecc06cda78f79713dc81a433c90e0ab2162940336a312d47c52df280780102030103000405000000",
"withdrawal_authority": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU"
}
],
"splits": [
{
"amount": "100000000",
"new_stake_account_address": "DunL5cf8DUyC6F8c67EsfJPdbNWixaX9y6yRapiCHwLV",
"new_stake_id": "2c249579-980b-4c1d-89dd-f5d3a1bd7f21",
"splitted_stake_account_address": "J5zhkQwQiJoTYtnCy39o1Ue4yBJS7cSJKfvPe7DHBo8k",
"splitted_stake_id": "1b497871-54ec-46e0-a2ae-764595faefeb",
"stake_account_authority": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU",
"unsigned_transaction": "02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c2a2dc27221a592a06914d6f39cc4cabef7dc398bce118176e9aaa560fdc60ec5cddea3350f7dde45265fb42963e6b09122b3400401da37ee24c924d264c80c0200020585a99849ac66f619f6d272aa6f58d829072be14f9f2c2b2e329b32547f205f93bfd1b2e4d7c0993647351dbde5da9246d7028ca59865525589970468c4992f12fdde3ed797b92766c098b1224f3c1e9fa798d03ad06a9d06417ba6ee98b6b249000000000000000000000000000000000000000000000000000000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc000000000c06019e387771aee679c5adf2a00acd2aaeafab6f8340e6d0e8e100c9f3178a60203020001340000000080d5220000000000c80000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000004030201000c0300000000e1f50500000000"
}
],
"total_deactivated_amount": "100000000",
"walletAddress": null
},
{
"deactivates": [
{
"amount": "1000000000",
"expiration_time": 1746525362,
"stake_account_address": "AARXFqEwHHfmo9AYDd6KCm2ysghTJN8bvKuhEgH4QGt7",
"stake_account_authority": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU",
"stake_id": "2d56cbaf-a9aa-4633-b6ad-f0ec406b6406",
"unsigned_transaction": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100020485a99849ac66f619f6d272aa6f58d829072be14f9f2c2b2e329b32547f205f93882322e6ffeb183cc5484db6a2e8af597abc630e4aff0f968e7036e34e3927b806a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000006a7d51718c774c928566398691d5eb68b5eb8a39b4b6d5c73555b2100000000d4732682e0ccb82122e84c76f8412241e75814bb1896d2fa55cc8ee9ecb879920102030103000405000000",
"withdrawal_authority": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU"
}
],
"splits": [
{
"amount": "1000000000",
"new_stake_account_address": "AARXFqEwHHfmo9AYDd6KCm2ysghTJN8bvKuhEgH4QGt7",
"new_stake_id": "87fd69d2-27a7-4f72-8c96-9bf33361ff94",
"splitted_stake_account_address": "FNCWPTnfS5oTz497ro21ppXx2HuxdBJmvZRv2ecfWAfF",
"splitted_stake_id": "dbd96604-66ea-4f0a-8543-53f4b5111c4a",
"stake_account_authority": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU",
"unsigned_transaction": "020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000049617870a4c5030e3e28d04dfd475b77eed484db13d709114b41c7278b6c1a3ab7518fcb6d259b9aabe764a79059f9a496852d306773cdaf0f14e459c60af4060200020585a99849ac66f619f6d272aa6f58d829072be14f9f2c2b2e329b32547f205f93882322e6ffeb183cc5484db6a2e8af597abc630e4aff0f968e7036e34e3927b8d571d31909f5c53ec6a22e841010f5e23bf53e6d7088ccaec910feb7b2c17976000000000000000000000000000000000000000000000000000000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc000000000edecda83fe27879b86775fedfcbe28504592464677ed0abe093fb8869c12db340203020001340000000080d5220000000000c80000000000000006a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000004030201000c0300000000ca9a3b00000000"
}
],
"total_deactivated_amount": "1000000000",
"walletAddress": null
},
]
}
}
}
SolanaGetDeactivatableAmount
POST
SolanaGetDeactivatableAmount
Returns the total staked amount that can be deactivated across all wallets of the user. If any prior deactivation intent was left unsigned, it will be automatically canceled.
You can specify the optional wallets
parameter to get the total deactivatable amount in specific wallets.
Body
### 🧪 Example Query
```graphql
query SolanaGetDeactivatableAmount{
SolanaGetDeactivatableAmount(
input: {network: "devnet", delegator_address: "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU", staking_authority: "", withdrawal_authority: ""}
) {
... on GetDeactivatableResponse {
protocol
network
amount
currency
}
... on ErrorResponse {
__typename
code
message
}
}
}
Response
{
"data": {
"SolanaGetDeactivatableAmount": {
"protocol": "solana",
"network": "devnet",
"amount": "2.113002137",
"currency": "SOL"
}
}
}
SolanaGetWithdrawableAmount
POST
SolanaGetWithdrawableAmount
Returns total amount that can be withdrawn across all wallets of the user. If any prior withdrawal intent was left unsigned, it will be automatically canceled.
You can specify the optional wallets
parameter to get the total
withdrawable amount in specific wallets.
Body
### 🧪 Example Query
```graphql
query SolanaGetWithdrawableAmount{
SolanaGetWithdrawableAmount(
input: {network: "devnet", delegator_address: "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU", withdrawal_authority: "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU"}
) {
... on WithdrawableAmount {
__typename
amount
currency
network
protocol
}
... on Error {
__typename
code
message
}
}
}
Response
{
data: {
"SolanaGetWithdrawableAmount": {
"__typename": "WithdrawableAmount",
"amount": "0",
"currency": "SOL",
"network": "devnet",
"protocol": "solana"
}
}
}
SolanaListWithdrawalIntents
POST
SolanaListWithdrawalIntents
Retrieve a list of all outstanding withdrawal intents Body
### 🧪 Example Query
```graphql
query SolanaListWithdrawalIntents{
SolanaListWithdrawalIntents(input: {network: "devnet"}) {
... on ListWithdrawalIntentsResponse {
customerId
network
protocol
solana {
customerId
network
protocol
solana {
total_withdraw_amount
withdraws {
amount
expiration_time
stake_account_address
stake_id
unsigned_transaction
withdrawal_authority_public_key
}
}
withdrawal_intent_id
}
}
... on ErrorResponse {
__typename
code
message
}
}
}
Response
{
data: {
"SolanaListWithdrawalIntents": {
"customerId": "128554f4-0071-7072-01f8-be5c70e48162",
"network": "devnet",
"protocol": "solana",
"solana": [
{
"customerId": "128554f4-0071-7072-01f8-be5c70e48162",
"network": "devnet",
"protocol": "solana",
"solana": {
"total_withdraw_amount": "1002282180",
"withdraws": [
{
"amount": "1002282180",
"expiration_time": 1746529533,
"stake_account_address": "FNCWPTnfS5oTz497ro21ppXx2HuxdBJmvZRv2ecfWAfF",
"stake_id": "stake_urryb5nsef",
"unsigned_transaction": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100030585a99849ac66f619f6d272aa6f58d829072be14f9f2c2b2e329b32547f205f93d571d31909f5c53ec6a22e841010f5e23bf53e6d7088ccaec910feb7b2c1797606a1d8179137542a983437bdfe2a7ab2557f535c8a78722b68a49dc00000000006a7d51718c774c928566398691d5eb68b5eb8a39b4b6d5c73555b210000000006a7d517193584d0feed9bb3431d13206be544281b57b8566cc5375ff4000000f4aa59e2c5fd9459af399e0602506cac45a081ef8baabaddfd029b0303d1edee01020501000304000c04000000c49cbd3b00000000",
"withdrawal_authority_public_key": "9zmDS8uYXSLaDCV9gqyPQeHRLPaZvFJV9dN6oTFzCwVU"
}
]
},
"withdrawal_intent_id": "8ddac346-820e-4120-90e4-fd08fa1aea3b"
},
]
}
}
}
Last updated