Galaxy Staking
  • Home
  • Authentication and Authorization
    • API Key
    • Authorization Token
  • ethereum
    • Client Request Identifier
    • Validator Statuses
    • Ethereum
    • Models
  • Solana
    • Solana
    • Models
Powered by GitBook
On this page
Export as PDF
  1. Solana

Solana

PreviousModelsNextModels

The Staking API responses will adhere to standard HTTP response conventions. Importantly, the 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.

Validator Information Request

get

It will be required to configure a new endpoint to retrieve validator level information for Solana validators

Authorizations
Path parameters
networkstringRequired

Applicable values are mainnet, testnet and devnet

validator_addressstringRequired

The public key of the validator

Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
X-API-KEYstringRequiredExample: <API Key>
AuthorizationstringRequiredExample: Bearer <JWT>
Responses
200
Sample success response payload. See Response schema below for wrapper
application/json
400
Validation error.
{
   "client_req_id":"49bf80cb-c7ca-4082-a526-8afab545cc62",
   "error":[{
      "code":10600,
      "message":"unsupported network specified in the request"
   }]
}
application/json
500
Internal server error.
{
   "error":[{
      "code":15004,
      "message":"Ooops..! There was an error occurred when processing the delegator monitoring request. Please try again"
   }]
}
application/json
get
GET /v1/solana/{network}/validators/{validator_address} HTTP/1.1
Host: 
Authorization: Bearer <JWT>
Accept: application/json
Content-Type: application/json
X-API-KEY: <API Key>
{
  "network": "mainnet",
  "apy": 6.784,
  "validator_address": "CvSb7wdQAFpHuSpTYTJnX5SYH4hCfQ9VuGnqrKaKwycB",
  "validator_status": "ACTIVE",
  "delegated_balance": 50380.2581
}

Get a single delegator

get

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

Authorizations
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
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
X-API-KEYstringRequiredExample: <API Key>
AuthorizationstringRequiredExample: Bearer <JWT>
Responses
200
Sample success response payload. See Response schema below for wrapper
application/json
400
Validation error.
{
   "client_req_id":"49bf80cb-c7ca-4082-a526-8afab545cc62",
   "error":[{
      "code":10600,
      "message":"unsupported network specified in the request"
   }]
}
application/json
500
Internal server error.
{
   "error":[{
      "code":15004,
      "message":"Ooops..! There was an error occurred when processing the delegator monitoring request. Please try again"
   }]
}
application/json
get
GET /v1/solana/{network}/delegators/{stake_account} HTTP/1.1
Host: 
Authorization: Bearer <JWT>
Accept: application/json
Content-Type: application/json
X-API-KEY: <API Key>
{
  "network": "mainnet",
  "status": "ACTIVE",
  "validator_info": {
    "address": "2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95"
  },
  "stake_account": "2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95",
  "balance_in_lamports": 1,
  "balance_in_sol": 1.38,
  "provision_info": {
    "id": "VMP2285150508",
    "created_at": "2024-09-04 10:25:24"
  }
}
  • POSTInitiate staking by creating and funding a new stake account on the Solana blockchain
  • POSTSubmit a transaction hash of a signed payload and verify the transaction status
  • POSTBroadcast a signed transaction to the Solana network
  • POSTDelegate Stake Account
  • POSTUndelegate an existing delegation
  • POSTSplit the balance of a stake account into a new stake account
  • POSTMerge two stake accounts that share the same stake and withdrawal authorities into a single stake account
  • POSTTransfer SOL from a Solana account to a stake account
  • POSTWithdraw undelegated SOL from stake accounts
  • POSTGet All Delegators
  • POSTRewards
  • POSTDelegator Monitoring
  • GETValidator Information Request
  • GETGet a single delegator

Initiate staking by creating and funding a new stake account on the Solana blockchain

post

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

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

The participant name registered on the platform. If not provided, a default participant will be assigned.

Example: Participant 1
accountstringOptional

The account name registered on the platform. If not provided, a default account linked to the participant will be assigned.

Example: Participant 1_acc1
networkstringRequired

The network on which the stake account should be created. Valid values are mainnet, testnet, devnet

Example: mainnet
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
Successfully created the new stake account.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/stake-account HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 306

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "network": "mainnet",
  "funding_pubkey": "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jsgd8",
  "amount": 1.5,
  "stake_authority_pubkey": "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jsgd8",
  "withdraw_authority_pubkey": "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jsgd8"
}
{
  "stake_account_pubkey": "JBwWBWQgSDpXt8rvrnYHkYFLpwwUqWVW3P7NJ2SpdcFo",
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Submit a transaction hash of a signed payload and verify the transaction status

post

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

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
stake_account_pubkeystringRequired

The address for which the signed transaction is being sent.

Example: 77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18
actionstringRequired

The action for which the payload is applicable. Valid values are stake_account_creation, delegate, undelegate, withdraw, transfer, split, merge.

Example: delegate
tx_hashstringRequired

The transaction hash retrieved from the blockchain after broadcasting the signed transaction.

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 withdraw, transfer, split, merge.

Example: 6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX
Responses
200
Successfully verified the transaction status.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/transaction HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 268

{
  "stake_account_pubkey": "77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18",
  "action": "delegate",
  "tx_hash": "2qEA2oQaRKFtpsgfEXLRGBi2qNfATWmygvrz3agdMS7N9xMYw2wbJkykkeYNJ6pEffftMZupCbg2woETmE15iDZw",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX"
}
{
  "stake_account_pubkey": "77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX",
  "action": "delegate",
  "tx_hash": "2qEA2oQaRKFtpsgfEXLRGBi2qNfATWmygvrz3agdMS7N9xMYw2wbJkykkeYNJ6pEffftMZupCbg2woETmE15iDZw",
  "tx_status": "confirmed"
}

Broadcast a signed transaction to the Solana network

post

Accepts a signed transaction payload and broadcasts it to the Solana network.

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
stake_account_pubkeystringRequired

The address for which the signed transaction is being sent. Required for actions like delegate, withdraw, split.

Example: 77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18
actionstringRequired

The action for which the payload is applicable. Valid values are stake_account_creation, delegate, undelegate, withdraw, split, merge, transfer.

Example: delegate
tx_payloadstringRequired

The 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
Successfully broadcasted the signed transaction.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/signed-transaction HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 635

{
  "stake_account_pubkey": "77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18",
  "action": "delegate",
  "tx_payload": "AVubIXkY58h7SWVybmV4LfQMi0LzDjI/6a0kqmkSnqkgsbELvca/u6K+cj+EnH2ZbMoczzdZSJHdvkZpcb8ojQ4BAAUHHemcMq/s9GReFNveg0cxx0Y8/+tmySLLzJM+4IJMROZayWI6FtCwSthWivKewpfc+PjVkFFuzgpLyEtIYz3c6930KgSAClTeLlg/lPF7CJclt3LRMzUmJxJBUyd20v/GBqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAAGodgXpQIFC2gHkebObbiOHltxUPYfxnkKTrTRAAAAAAan1RcYx3TJKFZjmGkdXraLXrijm0ttXHNVWyEAAAAABqfVFxk1hND+7ZuzQx0TIGvlRCgbV7hWbMU3X/QAAABKpClAbBa5nzget5in1jkJZczarGXeb81KiNLzOFG9lQEDBgECBQYEAAQCAAAA",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX"
}
{
  "stake_account_pubkey": "77PoG13uysZN2mXTACpGV3HCN2v14p894fzYxmjP2p18",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX",
  "action": "delegate",
  "tx_hash": "2qEA2oQaRKFtpsgfEXLRGBi2qNfATWmygvrz3agdMS7N9xMYw2wbJkykkeYNJ6pEffftMZupCbg2woETmE15iDZw",
  "tx_status": "confirmed"
}

Delegate Stake Account

post

Delegates a stake address to a specified validator address.

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

The participant name registered on the platform. If not provided, a default participant will be assigned.

Example: Participant 1
accountstringOptional

The account name registered on the platform. If not provided, a default account linked to the participant will be assigned.

Example: Participant 1_acc1
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
Responses
200
Delegation request processed successfully. Returns the unsigned transaction and related details.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/delegate HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 257

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "validator_pubkey": "FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f",
  "fee_payer": "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
}
{
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "validator_pubkey": "FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f",
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3",
    "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Undelegate an existing delegation

post

This endpoint allows clients to undelegate stake accounts

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

The participant name registered on the platform. If not provided, a default participant will be assigned.

Example: Participant 1
accountstringOptional

The account name registered on the platform. If not provided, a default account linked to the participant will be assigned.

Example: Participant 1_acc1
stake_account_pubkeystringRequired

The stake account that should be undelegated.

Example: BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3
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
Responses
200
Undelegation request processed successfully. Returns the unsigned transaction and related details.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/undelegate HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 191

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "fee_payer": "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
}
{
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3",
    "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Split the balance of a stake account into a new stake account

post

Clients can use this endpoint to split the balance of a stake account into a new stake account.

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

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

Example: Participant 1
accountstringOptional

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

Example: Participant 1_acc1
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
Responses
200
Split request processed successfully. Returns the unsigned transaction and related details.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/split HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 204

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "amount": 1.2,
  "fee_payer": "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
}
{
  "source_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1w",
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3",
    "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Merge two stake accounts that share the same stake and withdrawal authorities into a single stake account

post

This endpoint allows clients to merge stake accounts that share the same stake and withdrawal authorities into a single stake account

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

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

Example: Participant 1
accountstringOptional

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

Example: Participant 1_acc1
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 accounts.

Example: 31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z
Responses
200
Merge request processed successfully. Returns the unsigned transaction and related details.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/merge HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 268

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "source_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX",
  "fee_payer": "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
}
{
  "source_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1w",
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3",
    "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Transfer SOL from a Solana account to a stake account

post

Transfer SOL from a Solana account (wallet) to a stake account. The transaction will be unsigned and returned for signing.

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

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

Example: Participant 1
accountstringOptional

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

Example: Participant 1_acc1
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
Responses
200
Transfer request processed successfully. Returns the unsigned transaction and related details.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/transfer HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 281

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "source_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "destination_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX",
  "amount": 0.5,
  "fee_payer": "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
}
{
  "from_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "to_account_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1w",
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3",
    "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Withdraw undelegated SOL from stake accounts

post

Withdraw undelegated SOL from stake accounts. Withdrawals can be made from a stake account to a Solana account (wallet) or between stake accounts.

Header parameters
AcceptstringRequired

MIME type of the request body.

Default: application/json
Content-TypestringRequired

MIME type of the request body.

Default: application/json
X-API-KEYstringRequired

API key for authentication.

AuthorizationstringRequired

Bearer token for authentication.

Body
participantstringOptional

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

Example: Participant 1
accountstringOptional

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

Example: Participant 1_acc1
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
Responses
200
Withdrawal request processed successfully. Returns the unsigned transaction details.
application/json
400
Validation error.
application/json
500
Internal server error.
application/json
post
POST /v1/solana/delegators/withdraw HTTP/1.1
Host: 
Accept: application/json
Content-Type: application/json
X-API-KEY: text
Authorization: text
Content-Length: 270

{
  "participant": "Participant 1",
  "account": "Participant 1_acc1",
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "recipient_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX",
  "amount": 1.2,
  "fee_payer": "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
}
{
  "stake_account_pubkey": "BvdHdA7SLDW32XR3Sm3uZpGDpNJZU3FQzGRGoSmkE1G3",
  "recipient_pubkey": "6fT3SrMwTgGNWdwHv27JTmbvc8q3cKx4tAggxEX1wmnX",
  "amount": 1.2,
  "unsigned_tx": "AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0+lqa9HL7rk5GnqOh8e05Ds01fH62JTIbuQ9yko+LpbGVWb+MvfBZvlZy5xLpgVcgTJ2eI5S4ZiYkxcyxdv0DAgADBd/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/e/2Qc2wJPjPPukVhD06bwv9VOltLo6SP72QDr+o+pgTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAADaIFlGgWVF2xn6jQ5FbNW/q7opjqsQQJaSRC/6qyTQwwICAgABNAAAAACAYalHAAAAAMgAAAAAAAAABqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAADAgEEdAAAAADfw3jThwAU40PGi+ivJS7LykLgQPUfAKvEfjiy53Cf3t/DeNOHABTjQ8aL6K8lLsvKQuBA9R8Aq8R+OLLncJ/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "signers": [
    "G4UnzgWwzsEAJG5ATd7MGEGzjeWj4s5vXWczBE3jFeV3",
    "31mRtwpfEv4GHRGSzZuqyU7XAtDne7x8BSwANgun8r2Z"
  ],
  "created_at": "2024-11-29T05:19:02.644Z"
}

Get All 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
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
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
X-API-KEYstringRequiredExample: <API Key>
AuthorizationstringRequiredExample: Bearer <JWT>
Body
networkstringRequired

The network under which the stake accounts will be returned.

participantstringOptional

The participant under which the stake accounts will be returned.

accountstringOptional

The account under which the stake accounts will be returned.

Show properties
stake_accountsstring[]Optional

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

Responses
200
Sample success response payload. See Response schema below for wrapper
application/json
400
Validation error.
{
   "client_req_id":"49bf80cb-c7ca-4082-a526-8afab545cc62",
   "error":[{
      "code":10600,
      "message":"unsupported network specified in the request"
   }]
}
application/json
500
Internal server error.
{
   "error":[{
      "code":15004,
      "message":"Ooops..! There was an error occurred when processing the delegator monitoring request. Please try again"
   }]
}
application/json
post
POST /v1/solana/delegators HTTP/1.1
Host: 
Authorization: Bearer <JWT>
Accept: application/json
Content-Type: application/json
X-API-KEY: <API Key>
Content-Length: 100

{
  "network": "text",
  "participant": "text",
  "account": "text",
  "status": "ACTIVE",
  "stake_accounts": [
    "text"
  ]
}
{
  "network": "mainnet",
  "page": 1,
  "total": 250,
  "data": {
    "status": "ACTIVE",
    "validator_info": {
      "address": "2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95"
    },
    "stake_account": "2yoofMr4N78WPxVK8MU8Yy26dfRZbPw5WDzTRCA9uv95",
    "balance_in_lamports": 1,
    "balance_in_sol": 1.38,
    "provision_info": {
      "id": "VMP2285150508",
      "created_at": "2024-09-04 10:25:24"
    }
  }
}

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
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
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
X-API-KEYstringRequiredExample: <API Key>
AuthorizationstringRequiredExample: Bearer <JWT>
Body
networkstring · enumRequired

The network on which validators should be created. Supported values

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
rollup_typestring · enumRequired

Denotes the granularity of rewards breakdown. The possible values are,

Possible values:
stake_accountsstring[]Required

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

Responses
200
Sample success response payload. See Response schema below for wrapper
application/json
400
Validation error.
{
   "client_req_id":"49bf80cb-c7ca-4082-a526-8afab545cc62",
   "error":[{
      "code":10700,
      "message":"invalid type parameter specified in the request"
   }]
}
application/json
500
Internal server error.
{
   "error":[{
      "code":15006,
      "message":"Ooops..! There was an error occurred when processing the rewards request. Please try again"
   }]
}
application/json
post
POST /v1/solana/delegators/rewards HTTP/1.1
Host: 
Authorization: Bearer <JWT>
Accept: application/json
Content-Type: application/json
X-API-KEY: <API Key>
Content-Length: 97

{
  "network": "mainnet",
  "start": "200000",
  "end": "200100",
  "rollup_type": "1",
  "stake_accounts": [
    "text"
  ]
}
{
  "network": "mainnet",
  "start": "100",
  "end": "450",
  "page": 1,
  "total": 250,
  "data": [
    {}
  ]
}

Delegator Monitoring

post

The monitoring endpoint must be invoked by the client to retrieve and monitor delegator addresses (stake accounts) in the platform. Clients can send a request containing a list of the delegator addresses that require monitoring, and positions corresponding to each delegator address will be created on the platform.

Authorizations
Header parameters
AcceptstringRequiredExample: application/json
Content-TypestringRequiredExample: application/json
X-API-KEYstringRequiredExample: <API Key>
AuthorizationstringRequiredExample: Bearer <JWT>
Body
networkstring · enumRequired

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

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
{
   "delegator_monitoring_reference_id":"VMP2285150508",
}
application/json
400
Validation error.
{
   "client_req_id":"49bf80cb-c7ca-4082-a526-8afab545cc62",
   "error":[{
      "code":10600,
      "message":"unsupported network specified in the request"
   }]
}
application/json
500
Internal server error.
{
   "error":[{
      "code":15004,
      "message":"Ooops..! There was an error occurred when processing the delegator monitoring request. Please try again"
   }]
}
application/json
post
POST /v1/solana/delegators/monitoring HTTP/1.1
Host: 
Authorization: Bearer <JWT>
Accept: application/json
Content-Type: application/json
X-API-KEY: <API Key>
Content-Length: 207

{
  "network": "mainnet",
  "validator_address": "49bf80cb-c7ca-4082-a526-8afab545cc62",
  "delegators": [
    {
      "stake_accounts": [
        "8hyH1vCWstfPxPuoBJX6dYb3HxyzHSN765ZSVfqVBfFB"
      ],
      "participant": "BitGo",
      "account": "2268-Test"
    }
  ]
}

No content