> For the complete documentation index, see [llms.txt](https://hinkal-team.gitbook.io/hinkal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/withdraw-stuck-utxos.md).

# Withdraw Stuck UTXOs

## Recover blocked (stuck) UTXOs to a public address

> Withdraws the caller's stuck UTXOs for a token to a public \`recipientAddress\`.\
> Authorized by a normal mode session (secp256k1 request signature via \`x-hinkal-request-signature\`\
> header, bound to \`"POST /withdraw-stuck-utxos"\`) or an EIP-712 mode session with a\
> per-transaction EIP-712 typed-data signature (primary type \`WithdrawStuckUtxos\`) on\
> EVM/Tron, or an ed25519 plain-text signature on Solana.\
> \
> \*\*Normal mode\*\*: include \`x-hinkal-request-signature\` header; omit \`signature\`.\
> \*\*EIP-712 mode\*\*: include \`signature\` in body; omit \`x-hinkal-request-signature\` header.<br>

```json
{"openapi":"3.0.3","info":{"title":"Hinkal API","version":"1.0.0"},"tags":[{"name":"Withdraw Stuck UTXOs"}],"servers":[{"url":"https://api.hinkal.io","description":"Production"}],"paths":{"/withdraw-stuck-utxos":{"post":{"operationId":"withdrawStuckUtxos","summary":"Recover blocked (stuck) UTXOs to a public address","description":"Withdraws the caller's stuck UTXOs for a token to a public `recipientAddress`.\nAuthorized by a normal mode session (secp256k1 request signature via `x-hinkal-request-signature`\nheader, bound to `\"POST /withdraw-stuck-utxos\"`) or an EIP-712 mode session with a\nper-transaction EIP-712 typed-data signature (primary type `WithdrawStuckUtxos`) on\nEVM/Tron, or an ed25519 plain-text signature on Solana.\n\n**Normal mode**: include `x-hinkal-request-signature` header; omit `signature`.\n**EIP-712 mode**: include `signature` in body; omit `x-hinkal-request-signature` header.\n","tags":["Withdraw Stuck UTXOs"],"parameters":[{"$ref":"#/components/parameters/XHinkalRequestSignatureNormalMode"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid","description":"Session identifier UUID from POST /create-session"},"nonce":{"type":"string","format":"uuid","description":"Per-request UUID. Echoed back in the response."},"chainId":{"type":"integer"},"tokenAddress":{"type":"string"},"recipientAddress":{"type":"string"},"signature":{"type":"string","description":"EIP-712 or ed25519 signature (EIP-712 mode only; omit for normal mode)"}},"required":["sessionId","nonce","chainId","tokenAddress","recipientAddress"]}}}},"responses":{"200":{"description":"Stuck UTXOs withdrawn","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"txHashes":{"type":"array","items":{"type":"string"}},"nonce":{"type":"string","description":"Echoed per-request `nonce` from the request, added before signing."}},"required":["success","txHashes","nonce"]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/NonceConflict"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"parameters":{"XHinkalRequestSignatureNormalMode":{"name":"x-hinkal-request-signature","in":"header","required":false,"schema":{"type":"string"},"description":"Required for **normal mode** sessions: hex-encoded compact secp256k1 signature `secp256k1_sign(SHA256(binding + \"\\n\" + JSON.stringify(body)))`, where `binding` is `\"POST <routePath>\"` for this endpoint. Omit for **EIP-712 mode** sessions — include `signature` in the request body instead. See [Authentication](/enclave-api/authentication) for the full signing scheme."}},"responses":{"BadRequest":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"Unauthorized":{"description":"Invalid signature or reused nonce","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"NonceConflict":{"description":"Request `nonce` already consumed. Each `nonce` is single-use; generate a fresh UUID for every request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"ServerError":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}}},"schemas":{"FailedResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"}},"required":["success","error"]}}}}
```
