Delegations

Delegate assets to Staked and start earning.

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

Don't see the chain you are interested in? It probably requires the Node Provisioning API

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

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.

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.

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).

Commands assume use of the Tron wallet-cli: reference documentation.

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.

unFreezeBalance

Polkadot

Staking Mechanics

  • Bonded funds are locked up for 28 days

Staking Definitions

  • stash account - intended to be a cold wallet

  • controller account - intended to be a hot wallet for staking transactions

  • proxy account - any account delegated proxy access to

Bond to a Controller

Bonding is a transaction that associates a number of DOTs with a controller address.

  • sent & signed from a stash account

  • 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 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 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 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 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 account - intended to be a cold wallet

  • controller account - intended to be a hot wallet for staking transactions

  • proxy account - any account delegated proxy access to

Bond to a Controller

Bonding is a transaction that associates a number of KSMs with a controller address.

  • sent & signed from a stash account

  • 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 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 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 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 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