---
title: "Unstake SOL (one-shot — build, sign, submit)"
method: POST
path: "/api/v1/unstake"
tags: ["Staking"]
---

# Unstake SOL (one-shot — build, sign, submit)

`POST /api/v1/unstake`

## Request

- Base URL: `https://solentic.theblueprint.xyz`
- URL: `https://solentic.theblueprint.xyz/api/v1/unstake`
- Auth: none required

Agent-first: deactivate a stake account in a single call. Stake enters cooldown (~1 epoch) and becomes withdrawable at the next epoch boundary. Use check_withdraw_ready to poll readiness.

## Request body

- object
  - `walletAddress` string, required: Solana wallet address (stake authority)
  - `secretKey` string, required: Base58-encoded secret key — used in-memory for signing only
  - `stakeAccountAddress` string, required: Stake account address to deactivate

## Response `200`

Unstake confirmed

- object
  - `signature` string
  - `explorerUrl` string
  - `message` string
  - `epochTiming` EpochTiming: Current epoch timing information with estimated end time
    - `currentEpoch` integer: Current Solana epoch number
    - `slotsRemaining` integer: Slots remaining in current epoch
    - `estimatedSecondsRemaining` integer: Estimated seconds until epoch end
    - `estimatedEpochEnd` string, date-time: Estimated epoch end timestamp
    - `note` string: Explanation of epoch timing relevance
  - `security` object
  - `_meta` Meta (unresolved $ref)

## Other responses

- `400`: Invalid input or not a stake account
- `502`: Solana RPC or transaction failure

---

[API](https://skmtc.dev/theblueprint/apis/blueprint-staking-api.md) · [All operations](https://skmtc.dev/theblueprint/apis/blueprint-staking-api/llms.txt) · [OpenAPI document](https://skmtc.dev/theblueprint/apis/blueprint-staking-api/revisions/326d6015b851?raw)
