unstake_lst
Unstake an LST back to SOL (non-custodial).
lst_token is a mint (mSOL/jitoSOL/bSOL); amount in base units. mSOL routes via Marinade, others via the Sanctum router. Returns an UNSIGNED base64 tx. The technology service fee is charged on the unstaked-LST notional past the daily free tier (x402 payment_header).
idempotency_key (optional): a client-generated UUID.
Retrying with the same key + same args replays the original result instead
of re-unstaking. Reuse the SAME key across the build call and its
signed_transaction completion call -- see liquid_stake;
the two legs dedupe independently, so this never raises
IDEMPOTENCY_CONFLICT.
signed_transaction / verify (two-phase execution):
see liquid_stake -- re-call with the signed tx and Crank broadcasts it,
confirms it on-chain, and re-reads the LST + SOL balances.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"lst_token": "<lst_token>",
"amount": "<amount>",
"wallet_address": "<wallet_address>"
},
"name": "unstake_lst"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| verify | No | ||
| caller_id | No | ||
| lst_token | Yes | ||
| pay_in_crank | No | ||
| payment_header | No | ||
| wallet_address | Yes | ||
| idempotency_key | No | ||
| signed_transaction | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||