---
title: "Merge staking positions"
method: POST
path: "/staking/chains/{chainDescriptor}/merge"
tags: ["Staking"]
---

# Merge staking positions

`POST /staking/chains/{chainDescriptor}/merge`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/staking/chains/{chainDescriptor}/merge`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/staking/chains/:chainDescriptor/merge/post.ts> (a function with typed inputs; its response is checked against the schema)

Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL).
Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.

## Path parameters

- `chainDescriptor` 'SOL' | 'SOL_TEST', required

## Headers

- `Idempotency-Key` string

## Request body

- MergeStakeAccountsRequest
  - `sourceId` string, uuid, required: Id of the source position to merge from
  - `destinationId` string, uuid, required: Id of the destination position to merge into
  - `fee` string: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.
  - `feeLevel` 'LOW' | 'MEDIUM' | 'HIGH': Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required.
  - `txNote` string: The note to associate with the merge transaction.

## Response `201`

Merge request accepted and created.

- MergeStakeAccountsResponse
  - `id` string, required: The unique identifier of the merge position (the id of the destination position)

## Other responses

- `400`: Bad request: missing/invalid fields, unsupported amount, or malformed payload.
- `403`: Forbidden: insufficient permissions, disabled feature, or restricted provider/validator.
- `404`: Not found: requested resource does not exist (e.g., position, validator, provider, or wallet).
- `429`: Rate limit exceeded: slow down and retry later.
- `500`: Internal error while processing the request.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
