curl --request PATCH \
--url https://api.starkfi.io/yield/rebalance \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{
"chain_name": "solana",
"wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
"asset": "USDC",
"amount": "10.0",
"provider_out": "kamino",
"provider_in": "jupiter_lend"
}'
{
"statusCode": 200,
"success": true,
"status": "rebalance_yield_strategy_ok",
"message": "Yield strategy rebalanced successfully",
"data": {
"mode": "single_transaction",
"transaction": "AQAAAAA..."
}
}
{
"statusCode": 413,
"success": false,
"status": "rebalance_transaction_too_large",
"message": "..."
}
{
"statusCode": 400,
"success": false,
"status": "invalid_parameters",
"message": "informe provider ou provider_in + provider_out"
}
Yield Aggregator
Build rebalance (yield)
Move funds between protocols with an unsigned Solana transaction.
PATCH
/
yield
/
rebalance
curl --request PATCH \
--url https://api.starkfi.io/yield/rebalance \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{
"chain_name": "solana",
"wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
"asset": "USDC",
"amount": "10.0",
"provider_out": "kamino",
"provider_in": "jupiter_lend"
}'
{
"statusCode": 200,
"success": true,
"status": "rebalance_yield_strategy_ok",
"message": "Yield strategy rebalanced successfully",
"data": {
"mode": "single_transaction",
"transaction": "AQAAAAA..."
}
}
{
"statusCode": 413,
"success": false,
"status": "rebalance_transaction_too_large",
"message": "..."
}
{
"statusCode": 400,
"success": false,
"status": "invalid_parameters",
"message": "informe provider ou provider_in + provider_out"
}
string
required
Your StarkFi API key.
string
required
Enabled chain, e.g.
solana.string
required
Must parse to a finite number greater than zero.
string
User pubkey (or use
signer).string
Alias of
wallet.string
Token symbol (or use
symbol, token_mint, mint).enum<string>
Withdraw leg:
jupiter_lend or kamino (use with provider_in).enum<string>
Deposit leg:
jupiter_lend or kamino (use with provider_out).enum<string>
When both legs use the same protocol, send only this field.
curl --request PATCH \
--url https://api.starkfi.io/yield/rebalance \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{
"chain_name": "solana",
"wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
"asset": "USDC",
"amount": "10.0",
"provider_out": "kamino",
"provider_in": "jupiter_lend"
}'
{
"statusCode": 200,
"success": true,
"status": "rebalance_yield_strategy_ok",
"message": "Yield strategy rebalanced successfully",
"data": {
"mode": "single_transaction",
"transaction": "AQAAAAA..."
}
}
{
"statusCode": 413,
"success": false,
"status": "rebalance_transaction_too_large",
"message": "..."
}
{
"statusCode": 400,
"success": false,
"status": "invalid_parameters",
"message": "informe provider ou provider_in + provider_out"
}
Response
string
single_transaction when instructions fit in one packet.string
Base64 unsigned Solana wire. Sign and broadcast on your RPC, or optionally via Broadcast yield.
.png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)