Solana

The Staking API responses will adhere to standard HTTP response conventions. Importantly, the staking platform performs business validations on all POST request messages to ensure that each request contains accurate and complete information. The business validation failures will be responded to with an HTTP 400, while any internal processing errors identified will be responded to with an HTTP 500.

Stake Account Creation

post

This endpoint allows clients to initiate staking by creating and funding a new stake account on the Solana blockchain.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
networkstring · enumRequired

The network on which the stake account should be created. Supported values; -mainnet -testnet -devnet

Possible values:
participantstringOptional

The participant name registered on the staking platform that corresponds to the client’s customer. If not provided requests will be assigned to a default participant connected to the API key.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform that corresponds to the client’s customer. If not provided requests will be assigned to a default account linked to the participant.

Example: Account 1 Main
funding_pubkeystringRequired

The Solana account address that will be funding the stake account.

Example: G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jsgd8
amountnumberRequired

The amount of SOL that should be sent to the stake account.

Example: 1.5
stake_authority_pubkeystringOptional

The Solana account address that should sign all stake account related actions (Delegation, Undelegation, Split and Merge). If not provided will default to the “funding_pubkey”.

Example: G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jsgd8
withdraw_authority_pubkeystringOptional

The Solana account address that should sign withdrawal transactions. If not provided will default to the “funding_pubkey”.

Example: G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jsgd8
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/stake-account

Delegation

post

This end point supports the delegation of stake accounts under a selected validator. Clients can delegate stake accounts that are currently onboarded onto the staking platform as well as stake accounts that do not have a corresponding position on the staking platform i.e. stake accounts created elsewhere.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
stake_account_pubkeystringRequired

The stake account that should be delegated.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
validator_pubkeystringRequired

The validator address under which the stake account should be delegated.

Example: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
fee_payerstringOptional

The Solana account address that should pay the fees related to the transaction. If not provided fees should be paid by the Stake Authority of the stake account.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
participantstringOptional

The participant name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default participant.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default account.

Example: Account 1 Main
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/delegate

Undelegation

post

Clients can use the undelegation endpoint to undelegate an existing delegation. This endpoint allows clients to undelegate stake accounts that are currently onboarded onto the staking platform as well as stake accounts that do not have a corresponding position on the staking platform

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
stake_account_pubkeystringRequired

The stake account that should be undelegated.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
fee_payerstringOptional

TThe Solana account address that should pay the fees related to the transaction. If not provided fees should be paid by the Stake Authority of the stake account.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
participantstringOptional

The participant name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default participant.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default account.

Example: Account 1 Main
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/undelegate

Withdrawals

post

Clients can use this endpoint to withdraw undelegated SOL from both onboarded stake accounts and those without a corresponding position on the staking platform. Withdrawals can be made from a stake account to a Solana account (wallet) or between stake accounts.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
stake_account_pubkeystringRequired

The stake account from which SOL should be withdrawn.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
recipient_pubkeystringOptional

The stake account or Solana account (wallet) to which the withdrawn SOL will be transferred. If not provided the withdrawal will be done to the funding account of the stake account.

Example: 6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX
amountnumberRequired

The amount of SOL that should be withdrawn. The amount should be sent without trailing zeros.

Example: 1.2
fee_payerstringOptional

The Solana account address that should pay the fees related to the transaction. If not provided fees should be paid by the Withdraw Authority of the stake account.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
participantstringOptional

The participant name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default participant.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default account.

Example: Account 1 Main
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/withdraw

Split

post

Clients can use this endpoint to split the balance of a stake account into a new stake account. It supports splitting both onboarded stake accounts and those without a corresponding position on the staking platform.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
stake_account_pubkeystringRequired

The stake account that should be split.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
amountnumberRequired

The amount of SOL that should be split from the existing stake account to the newly created stake account.

Example: 1.2
fee_payerstringOptional

The Solana account address that should pay the fees related to the transaction. If not provided fees should be paid by the Stake Authority of the stake account.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
participantstringOptional

The participant name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default participant.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position will be created under a default account.

Example: Account 1 Main
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/split

Merge

post

the staking platform Staking API offers an endpoint to merge two stake accounts that share the same stake and withdrawal authorities into a single stake account. This endpoint allows clients to merge stake accounts that are currently onboarded onto the staking platform as well as merge stake accounts that do not have a corresponding position on the staking platform.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
source_account_pubkeystringRequired

The stake account that should be merged into the destination account.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
destination_account_pubkeystringRequired

The stake account that the source account will be merged into.

Example: 6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX
fee_payerstringOptional

The Solana account address that should pay the fees related to the transaction. If not provided fees should be paid by the Stake Authority of the stake account.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
participantstringOptional

The participant name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position/s will be created under a default participant.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position/s will be created under a default account.

Example: Participant 1_acc1
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/merge

Transfer

post

Clients can use this endpoint to transfer SOL from a Solana account (wallet) to a stake account. This endpoint allows clients to transfer SOL to stake accounts that have been onboarded onto the staking platform as well as to stake accounts that do not have a corresponding position on the staking platform.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
source_account_pubkeystringRequired

The Solana account (wallet) from which SOL will be transferred out of.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
destination_account_pubkeystringRequired

The stake account into which SOL will be transferred.

Example: 6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX
amountnumberRequired

The amount of SOL to be transferred to the stake account.

Example: 0.5
fee_payerstringOptional

The Solana account address that should pay the fees related to the transaction. If not provided fees should be paid by the ‘source_account_pubkey’.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
participantstringOptional

The participant name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position/s will be created under a default participant.

Example: Participant 1
accountstringOptional

The account name registered on the staking platform under which the stake account should be created if it has not currently been onboarded onto the staking platform. If not provided the position/s will be created under a default account.

Example: Account 1 Main
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/transfer

Submit Signed Transactions

post

Clients can submit their signed transactions to the staking platform via this endpoint. Upon receiving a signed transaction the staking platform will broadcast it to the Solana blockchain for execution.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
stake_account_pubkeystringRequired

The address for which the signed transaction is being sent.

Example: 77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18
actionstring · enumRequired

The action for which the payload is applicable. Supported values are;

  • stake_account_creation
  • delegate
  • undelegate
  • withdraw
  • split
  • merge
  • transfer
Possible values:
tx_payloadstringRequired

Hexadecimal encoded serialized signed transaction corresponding to the unsigned transaction created via respective endpoint.

Example: AVubIXkY58h7SWVybmV4LfQMi0LzDjI/6a0kqmkSnqkgsbELvca/u6K+cj+EnH2ZbMoczzdZSJHdvkZpcb8ojQ4BAAUHHemcMq/s9GReFNveg0cxx0Y8/+tmySLLzJM+4IJMROZayWI6FtCwSthWivKewpfc+PjVkFFuzgpLyEtIYz3c6930KgSAClTeLlg/lPF7CJclt3LRMzUmJxJBUyd20v/GBqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAAGodgXpQIFC2gHkebObbiOHltxUPYfxnkKTrTRAAAAAAan1RcYx3TJKFZjmGkdXraLXrijm0ttXHNVWyEAAAAABqfVFxk1hND+7ZuzQx0TIGvlRCgbV7hWbMU3X/QAAABKpClAbBa5nzget5in1jkJZczarGXeb81KiNLzOFG9lQEDBgECBQYEAAQCAAAA
destination_account_pubkeystringOptional

The destination address for which the signed transaction is being sent. Will be required if the action is one of the following - withdraw, split, merge, transfer.

Example: 6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/signed-transaction

Submit Transaction Hash

post

Clients can use this endpoint to submit a transaction hash for a payload independently broadcasted to the blockchain. the staking platform verifies the transaction status and updates the corresponding stake account position accordingly.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
stake_account_pubkeystringRequired

The address for which the transaction hash is being sent.

Example: 77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18
actionstring · enumRequired

The action for which the payload is applicable. Supported values are;

  • stake_account_creation
  • delegate
  • undelegate
  • withdraw
  • split
  • merge
  • transfer
Possible values:
tx_hashstringRequired

The transaction hash which is being submitted to the staking platform.

Example: 2qEA2oQaRKFtpsgfEXLRGBi2qNfATWmygvrz3agdMS7N9xMYw2wbJkykkeYNJ6pEffftMZupCbg2woETmE15iDZw
destination_account_pubkeystringOptional

The destination address for which the signed transaction is being sent. Will be required if the action is one of the following - withdraw, split, merge, transfer.

Example: 6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/transaction

Rewards

post

The rewards endpoint returns rewards accrued by a stake account. This endpoint accepts the filtering by start and end (can be epoch or date), and delegator address (stake account) public keys. This endpoint returns the rewards since stake account inception, accrued rewards in the specified period and epoch-wise rewards breakdown for the specified period.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pagestringOptional

The current page number requested by the client, if not specified, should be defaulted to 1.

sizestringOptional

The number of entries per page, if not presented in the request, should be defaulted to the maximum value of 250.

Header parameters
X-API-KEYstringRequiredExample: <API Key>
Body
networkstring · enumRequired

The network on which validators should be created. Supported values;

  • mainnet
  • testnet
  • devnet
Possible values:
rollup_typeinteger · enumRequired

Denotes the granularity of rewards breakdown. THe applicable values are;

  • 1 (epoch)
  • 2 (date)
Possible values:
startstringRequired

It specifies the start epoch if the type is 1, or the start date in the "YYYY-MM-DD" format (UTC timezone) if the type is 2.

Example: 200000
endstringRequired

It specifies the end epoch if the type is 1, or the end date in the "YYYY-MM-DD" format (UTC timezone) if the type is 2.

Example: 200100
stake_accountsstring[]Required

List of delegator stake accounts to fetch the rewards breakdown. A maximum of 50 entries are allowed.

Example: ["2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95","2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv96"]
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/rewards

Retrieve Multiple Delegators

post

The endpoint to retrieve a list of delegators returns the details of the stake accounts monitored by a given client that fit the specified filter criteria in a paginated manner. If no filtration criteria is provided, the endpoint will retrieve a list of all the stake accounts applicable to the client. All timestamp fields in the response are in UTC.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
pagestringOptional

The current page number requested by the client, if not specified, should be defaulted to 1.

Default: 1
sizestringOptional

The number of entries per page, if not presented in the request, should be defaulted to the maximum value of 250.

Default: 250
Header parameters
X-API-KEYstringRequiredExample: <API Key>
Body
networkstring · enumRequired

The network on which the queried stake accounts have been created . Supported values;

  • mainnet
  • testnet
  • devnet
Possible values:
participantstringOptional

The participant name registered on the staking platform from which stake accounts need to be retrieved.

Example: Participant_1
accountstringOptional

The account name registered on the staking platform from which stake accounts need to be retrieved.

Example: Account_1
stake_accountsstring[]Optional

List of delegator stake accounts to fetch the delegator information. A maximum of 250 entries are allowed.

Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators

Get a Single Delegator

get

This request will return the information regarding a single delegator which is being monitored by the staking partner

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
networkstringRequired

Applicable values are mainnet, testnet and devnet

stake_accountstringRequired

The public key of the stake account belonging to the delegator.

Header parameters
X-API-KEYstringRequiredExample: <API Key>
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
get
/v1/solana/{network}/delegators/{stake_account}

Validator Information

get

Clients can use this endpoint to query detailed information about Solana validators with stake accounts under them on the staking platform.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
networkstring · enumRequired

Applicable values are mainnet, testnet and devnet

Possible values:
validator_addressstringRequired

The public key of the validator

Header parameters
X-API-KEYstringRequiredExample: <API Key>
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
get
/v1/solana/{network}/validators/{validator_address}

Delegator Monitoring

post

Clients can invoke this endpoint to monitor existing delegations by retrieving and tracking delegator addresses (stake accounts) on the staking platform. A request with a list of delegator addresses enables the creation of corresponding positions on the staking platform for monitoring purposes.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
X-API-KEYstringRequiredExample: <API Key>
Body
networkstring · enumRequired

Applicable network. Supported values;

  • mainnet
  • testnet
  • devnet
Possible values:
validator_addressstringRequired

The address of the validator under which the stake account is delegating SOL.

Example: 49bf80cb-c7ca-4082-a526-8afab545cc62
Responses
200

Sample success response payload. See Response schema below for wrapper

application/json
post
/v1/solana/delegators/monitoring

Last updated