# Get staked in minutes with recipes!

> 📘
>
> Staking with Fireblocks? → Click [here](https://docs.figment.io/update/recipes/ada#/)
>
> Staking from a Hot Wallet? → Click [here](https://docs.figment.io/update/recipes/stake-ada-from-hot-wallet#/)
>
> Using own RPC Node (and need to merge witnesses into a single CBOR to broadcast)? → Click [here](https://docs.figment.io/update/recipes/stake-ada-from-fireblocks-broadcast-with-sgined-transaction#/)

# Delegating

When you first delegate on Cardano, the first step is to register your `stake key` and delegate to a stake pool. Figment’s API allows you to do both in a single transaction, making the process simpler and faster.

### Step 1: Understand What Happens

When you register a stake key and delegate:

- Your wallet creates a stake key registration certificate on the blockchain.
- This automatically generates a Reward Account (also called a stake address).
- You pay a deposit of 2 ADA for the registration (refundable if you later deregister).
- Your stake is delegated to the chosen stake pool immediately after registration.
- You can decode transactions using the [Transaction Decoder](https://docs.figment.io/docs/transaction-decoder).

### Step 2: Generate the Combined Stake Key Registration + Delegation Payload

Figment provides a Cardano API endpoint to generate the transaction payload for both registering a stake key and delegating:

👉 Endpoint: [POST /delegate](https://docs.figment.io/reference/cardano-delegate)

_Key steps:_

- Provide your `wallet address` and the `stake pool ID` you want to delegate to.
- Figment will return a `signing_payload` — this includes both the stake key registration and delegation instructions.

> ⚠️
>
> This means you don’t need two separate transactions. Everything is handled in one step.
>
> A **stake key** is a unique identifier that links your wallet to a reward account. Registering it allows you to earn rewards from staking.

> 🔀
>
> To enable rewards withdrawal, Cardano requires that stakers either:
>
> - delegate their governance voting power to a delegated representative or
> - explicitly abstain from governance voting.
>
> The /delegate endpoint explicitly sets wallet addresses to abstain.

### Step 3: Sign & Broadcast

Use your wallet or custody API to sign the `signing_payload`.

After signing, you will receive a signature that can be submitted via:

- 👉 Endpoint: [POST /broadcast](https://docs.figment.io/reference/cardano-broadcast-transaction#/): Use this endpoint when signing with proprietary custody solutions or any non-Fireblocks service. You must merge two witnesses into one cbor object before calling this endpoint. Please see [here.](https://docs.figment.io/update/recipes/stake-ada-from-fireblocks-broadcast-with-sgined-transaction#/) Some of the hot wallets takes care of this merge process internally. In this case, see [here](https://docs.figment.io/update/recipes/stake-ada-from-hot-wallet#/)
- 👉 Endpoint: [POST /broadcast/fireblocks](https://docs.figment.io/reference/cardano-broadcast-transaction#/): When signing Cardano transactions via the Fireblocks API, the response includes a `publicKey` and a `FullSig`. Simply pass the array returned from Fireblocks directly to the dedicated broadcast endpoint. This endpoint will automatically generate the two required witnesses for broadcasting the transaction, eliminating the need to create them manually. See [here](https://docs.figment.io/recipes/stake-ada-from-fireblocks-broadcast-via-figment-api#/)

# Transfer

Figment’s API lets you transfer ADA between wallets by generating a transaction payload that you can sign and submit to broadcast.

### Step 1: Understand What Happens

- Specify the `from_account_address` and `to_account_address` and the amount of ADA.
- Figment builds a transaction payload including inputs, outputs, and fees.
- You sign the payload and submit it to broadcast the transaction on the Cardano network.

### Step 2: Generate the Transfer Payload

👉 Endpoint: [POST /transfer](https://docs.figment.io/reference/cardano-transfer/)

_Key steps:_

- Create a transfer flow by providing network: `cardano/preprod`
- Provide `from_account_address`, `to_account_address`, and amount.
- Figment returns a `signing_payload` ready to be signed and submitted.

### Step 3: Sign & Broadcast

Use your wallet or custody API to sign the `signing_payload`. After signing, you will receive a signature that can be submitted via:

👉 Endpoint: [POST /broadcast](https://docs.figment.io/reference/cardano-broadcast-transaction#/)  
👉 Endpoint: [POST /broadcast/fireblocks](https://docs.figment.io/reference/cardano-broadcast-transaction#/):

> 🔀
>
> **Consolidating UTXOs**
>
> If you have a very large number of small UTXOs (often as a result of active DeFi trading), you may want to consolidate those UTXOs to reduce gas fees. With smaller numbers of UTXOs, it may cost more gas to consolidate than you will save by consolidating. Consolidating UTXOs is not recommended in most cases.
>
> **NOTE**: if you do consolidate UTXO, this will **not** impact unstaking downstream.
