Rakurai (1.0.0)

Rakurai API — HTTP API for Rakurai liquid and native staking, node scheduler downloads, and validator metrics.

Unsigned transactions: Stake/unstake routes return an unsigned transaction (txn as hex). Sign with the appropriate wallet keypair, then submit with POST /api/v1/send-txn.

GET with JSON body: Some validator routes expect a JSON body on GET (as implemented). Use a client that can send a body on GET.

Download OpenAPI description
Languages
Servers
Production
https://api.rakurai.io/

Native

Native stake and unstake (unsigned transactions).

Operations

Liquid

Liquid stake, unstake, and Jupiter unstake (unsigned transactions).

Operations

Stake

Request

Deposit SOL into the liquid stake pool. Returns an unsigned txn (hex). Sign with the wallet in pubkey and submit via POST /api/v1/send-txn.

Bodyapplication/jsonrequired
pubkeystringrequired

Wallet public key (base58).

amountinteger(int64)required

Lamports to deposit into the pool.

curl -i -X POST \
  https://api.rakurai.io/api/v1/staking/liquid/stake \
  -H 'Content-Type: application/json' \
  -d '{
    "pubkey": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "amount": 1000000000
  }'

Responses

Unsigned transaction (hex).

Bodyapplication/json
txnstringrequired

Serialized transaction message (hex) for signing.

Response
application/json
{ "txn": "010203aabbcc…" }

Unstake

Request

Burns pool tokens and prepares deactivate flow; returns unsigned txn plus new stake account pub_key / sec_key. amount is pool token base units.

Bodyapplication/jsonrequired
pubkeystringrequired
amountinteger(int64)required

Pool token amount to burn (base units).

curl -i -X POST \
  https://api.rakurai.io/api/v1/staking/liquid/unstake \
  -H 'Content-Type: application/json' \
  -d '{
    "pubkey": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "amount": 500000000
  }'

Responses

Unsigned transaction and new stake account keys.

Bodyapplication/json
txnstringrequired

Unsigned transaction message (hex).

pub_keystringrequired

New stake account pubkey (base58).

sec_keystringrequired

New stake account secret key (hex).

Response
application/json
{ "txn": "010203aabbcc…", "pub_key": "StakeAccount111111111111111111111111111111", "sec_key": "deadbeef…" }

Jupiter Unstake

Request

Builds a Jupiter swap transaction to exit liquid staking via Ra1SOL → SOL. Returns unsigned txn (hex) from Jupiter’s swap API. Not available on testnet. Sign and submit with POST /api/v1/send-txn.

Bodyapplication/jsonrequired
pubkeystringrequired

User wallet public key (base58).

amountinteger or stringrequired

Amount of Ra1SOL smallest units (numeric or string).

One of:

Amount of Ra1SOL smallest units (numeric or string).

integer(int64)

Amount of Ra1SOL smallest units (numeric or string).

curl -i -X POST \
  https://api.rakurai.io/api/v1/staking/liquid/jupiter/unstake \
  -H 'Content-Type: application/json' \
  -d '{
    "pubkey": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "amount": "1000000000"
  }'

Responses

Unsigned swap transaction (hex).

Bodyapplication/json
txnstringrequired

Serialized transaction message (hex) for signing.

Response
application/json
{ "txn": "aabbcc…" }

Autocompound

Enable or disable auto-compounding for native stake accounts (unsigned transactions).

Operations

send_transaction

Broadcast a signed transaction on-chain.

Operations

Rakurai Scheduler

List scheduler versions and download the scheduler archive (authenticated).

Download with curl using -o to save the .tar.gz, and --fail-with-body || cat <file> so HTTP errors return JSON instead of a corrupt archive.

Operations

Validator Stats

Validators list, TVL, APY, TPS, rewards, overview.

Operations