# Delegations

Each chain has its own staking semantics and transactions required to get started. The sections below provide a reference for integrators.

{% hint style="info" %}
Don't see the chain you are interested in? It probably requires the [Node Provisioning API](/staked/staking-api/node-provisioning-api.md)
{% endhint %}

## Tezos

**Staking Mechanics**

* No Lock-Up (delegated funds can always be reclaimed)
* Delegated funds start accruing rewards after 7 cycles (21 days)
* After the 7 cycles, rewards are issued every cycle (3 days), locked for 5 cycles (15 days), then paid to the baker (Staked), then paid to delegators

Staking on Tezos can be done through a single tz account. After the initial delegation, all funds associated with the tz account will be staked. This means a delegation transaction is only required once, since funds sent to the tz account in the future are automatically staked.

**Set delegate to Staked**

tezos-client commands: [reference documentation](http://tezos.gitlab.io/api/cli-commands.html)

`set delegate for src to mgr [--fee <amount>] [-D --dry-run] [--verbose-signing] [--minimal-fees <amount>] [--minimal-nanotez-per-byte <amount>] [--minimal-nanotez-per-gas-unit <amount>] [--force-low-fee] [--fee-cap <amount>] [--burn-cap <amount>]`

`src` **=** your tz address `mgr` = Staked baker address = tz1RCFbB9GpALpsZtu6J58sb74dm8qe6XBzv

## Tron

**Staking Mechanics**

* Delegated funds are frozen (locked-up) for 3 days after staking transactions

Staking on Tron requires two transactions, detailed below.&#x20;

**Freeze Balance**

On Tron, funds must be frozen before they can be staked. A freezing action moves tokens from the account balance into the frozen funds section of the account. Funds can be unfrozen 3 days after the latest freezing transaction.

Commands assume use of the Tron wallet-cli: [reference documentation](https://tronprotocol.github.io/documentation-en/clients/wallet-cli/).

`freezebalance freeze_balance days_to_freeze [ResourceCode:0 BANDWIDTH, 1 ENERGY]`

`freeze_balance` **=** amount of TRX to freeze, denominated in sun (1,000,000 sun = 1 TRX)                     `days_to_freeze` = 3  `ResourceCode` = 1

```
// Example Command
freezeBalance 10000000 3 1
```

**Stake Frozen Balance**

After freezing TRX, staking is accomplished by voting for a super representative (run by Staked).&#x20;

Commands assume use of the Tron wallet-cli: [reference documentation](https://tronprotocol.github.io/documentation-en/clients/wallet-cli/).

`votewitness staked_address amount_frozen`

`staked_address` **=** TBsyKdNsCKNXLgvneeUJ3rbXgWSgk6paTM                                                                         `amount_frozen` = amount of frozen TRX to stake, denominated in TRX

```
// Example Command (building on previous freeze command)
votewitness TBsyKdNsCKNXLgvneeUJ3rbXgWSgk6paTM 10
```

**Unfreeze Balance**

To convert frozen TRX back into the normal balance of an account, an unfreeze command must be run.

Commands assume use of the Tron wallet-cli: [reference documentation](https://tronprotocol.github.io/documentation-en/clients/wallet-cli/).

`unFreezeBalance`

## Polkadot

#### Staking Mechanics

* Bonded funds are locked up for 28 days

#### **Staking Definitions**

* [stash](https://wiki.polkadot.network/docs/learn-staking#accounts) account - intended to be a cold wallet
* [controller](https://wiki.polkadot.network/docs/learn-staking#accounts) account - intended to be a hot wallet for staking transactions
* [proxy](https://wiki.polkadot.network/docs/learn-proxies#staking-proxies) account - any account delegated proxy access to

**Bond to a Controller**

[Bonding](https://polkadot.js.org/docs/substrate/extrinsics/#bondcontroller-lookupsource-value-compactbalanceof-payee-rewarddestination) is a transaction that associates a number of DOTs with a controller address.

* sent & signed from a stash account &#x20;
* a stash account can also be used as the controller account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#bondcontroller-lookupsource-value-compactbalanceof-payee-rewarddestination>

**Nominate Validators**

[Nominating](https://polkadot.js.org/docs/substrate/extrinsics/#nominatetargets-veclookupsource) is a transaction that stakes a controller's bonded DOTs to targeted validators.

* sent & signed from a controller account
* the validators are a list of validators run by Staked

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics#nominatetargets-veclookupsource>

#### Bonding Additional Stake

After initially bonding to a controller, additional funds in the stash account may want to be staked. To add stake - after the initial bond transaction - requires a [bondExtra](https://polkadot.js.org/docs/substrate/extrinsics#bondextramax_additional-compactbalanceof) transaction sent & signed from the stash account.

* sent & signed from a stash account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#bondextramax_additional-compactbalanceof>

#### Kickoff Unbonding Period

[Unbonding](https://polkadot.js.org/docs/substrate/extrinsics/#unbondvalue-compactbalanceof) is a transaction that schedules a portion (or all) of the bonded amount to unbond, and kicks off the 28 day unbonding period.

* sent & signed from a controller account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#unbondvalue-compactbalanceof>

#### Withdraw Unbonded

[Withdrawing unbonded](https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32) is a transaction that moves the unbonded amount (assuming it is after the unbonding period) into the freeBalance of a stash account.

* sent & signed from a controller account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32>

## Kusama

#### Staking Mechanics

* Bonded funds are locked up for 8 days

#### **Staking Definitions**

* [stash](https://wiki.polkadot.network/docs/learn-staking#accounts) account - intended to be a cold wallet
* [controller](https://wiki.polkadot.network/docs/learn-staking#accounts) account - intended to be a hot wallet for staking transactions
* [proxy](https://wiki.polkadot.network/docs/learn-proxies#staking-proxies) account - any account delegated proxy access to

**Bond to a Controller**

[Bonding](https://polkadot.js.org/docs/substrate/extrinsics/#bondcontroller-lookupsource-value-compactbalanceof-payee-rewarddestination) is a transaction that associates a number of KSMs with a controller address.

* sent & signed from a stash account &#x20;
* a stash account can also be used as the controller account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#bondcontroller-lookupsource-value-compactbalanceof-payee-rewarddestination>

**Nominate Validators**

[Nominating](https://polkadot.js.org/docs/substrate/extrinsics/#nominatetargets-veclookupsource) is a transaction that stakes a controller's bonded KSMs to targeted validators.

* sent & signed from a controller account
* the validators are a list of validators run by Staked

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics#nominatetargets-veclookupsource>

#### Bonding Additional Stake

After initially bonding to a controller, additional funds in the stash account may want to be staked. To add stake - after the initial bond transaction - requires a [bondExtra](https://polkadot.js.org/docs/substrate/extrinsics#bondextramax_additional-compactbalanceof) transaction sent & signed from the stash account.

* sent & signed from a stash account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#bondextramax_additional-compactbalanceof>

#### Kickoff Unbonding Period

[Unbonding](https://polkadot.js.org/docs/substrate/extrinsics/#unbondvalue-compactbalanceof) is a transaction that schedules a portion (or all) of the bonded amount to unbond, and kicks off the 8 day unbonding period.

* sent & signed from a controller account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#unbondvalue-compactbalanceof>

#### Withdraw Unbonded

[Withdrawing unbonded](https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32) is a transaction that moves the unbonded amount (assuming it is after the unbonding period) into the freeBalance of a stash account.

* sent & signed from a controller account

Reference Documentation: <https://polkadot.js.org/docs/substrate/extrinsics/#withdrawunbondednum_slashing_spans-u32>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://staked.gitbook.io/staked/staking-api/delegations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
