LogoLogo
  • About Bancor Network
    • Bancor V3
    • Bancor Basics
      • About Bancor
      • What Can I Do With Bancor?
      • Liquidity Pools
      • Single-Side Liquidity
      • Why Use Bancor?
      • Resources
    • Resources for DAOs
      • Token Whitelisting Requirements
      • Liquidity Mining
        • Auto Compounding Rewards
          • How Auto Compounding Rewards work
          • How to Create an Auto Compounding Rewards Program
          • Custom Rewards Programs
        • Dual Liquidity Mining
        • Standard (External) Rewards
    • Security & Audits
      • Multisig Rights
      • Oracles
      • DAO MSIG Intervention Policy
  • Contracts & Functions
    • Contracts
    • Write Functions
      • Transaction Prerequisites
        • approve() / allowance()
      • Trading
        • tradeBySourceAmount()
        • tradeByTargetAmount()
        • Trading Troubleshooting
      • Adding Liquidity
        • deposit()
        • depositFor()
        • Deposit Troubleshooting
        • depositAndJoin()
      • Removing Liquidity
        • Initiating Cooldown
          • initWithdrawal()
        • withdraw()
        • cancelWithdrawal()
        • Withdraw Troubleshooting
      • Flashloan
        • flashLoan()
        • Flashloan Troubleshooting
      • Migrating Liquidity to v3
        • Migrating Bancor positions to v3
          • migratePositions()
          • migratePoolTokens()
          • Errors and Troubleshooting
        • Migrating from Uniswap v2
          • migrateUniswapV2Position()
        • Migrating from Sushiswap
          • migrateSushiSwapV1Position()
      • Rewards
        • join()
        • stakeRewards()
        • autoProcessRewards()
        • claimRewards()
        • leave()
      • Surplus migration
        • withdrawPOL()
      • Network Fees
        • burnNetworkFees()
    • Read Functions
      • Rewards
        • Standard rewards
          • Identify if a program exists
            • Auto Compounding
            • Standard Rewards
          • programIds()
          • programs()
          • providerProgramIds()
          • pendingRewards()
          • latestProgramId()
          • isProgramActive()
          • isProgramEnabled()
          • providerStake()
          • programStake()
          • providerRewards()
        • Auto compounding rewards
          • bnToken balance
          • isProgramActive()
          • isProgramPaused()
          • pools()
          • program()
          • programs()
      • Liquidity Pool Details
        • liquidityPools()
        • isPoolValid()
        • isPoolStable()
        • tradingLiquidity()
        • depositingEnabled()
        • poolFundingLimit()
      • Trades
        • tradeOutputBySourceAmount()
        • tradeInputByTargetAmount()
        • tradingEnabled()
        • tradingFeePMM()
      • Withdrawals
        • isReadyForWithdrawal()
        • withdrawalRequest()
        • withdrawalAmounts()
        • withdrawalRequestIds()
        • withdrawalRequestCount()
        • lockDuration()
      • Pool Token Information
        • poolToken()
        • collectionByPool()
        • poolTokenToUnderlying()
        • underlyingToPoolToken()
      • Vortex
        • pendingNetworkFeeAmount()
        • minNetworkFeeBurn()
      • Surplus whitelist
        • protectedTokenWhitelist()
    • Data & Events
      • General Data
        • contextId
      • Trading Data
        • event TokensTraded()
      • Liquidity Data
        • TotalLiquidityUpdated()
        • TradingLiquidityUpdated()
        • TokensDeposited()
        • TokensWithdrawn()
        • WithdrawalInitiated()
        • WithdrawalCancelled()
        • WithdrawalCompleted()
        • LockDurationUpdated()
        • Cross AMM Migration Data
          • UniswapV2PositionMigrated()
          • SushiswapV1PositionMigrated()
      • Flashloan Data
        • FlashLoanCompleted()
        • FlashLoanFeePPMUpdated()
      • Rewards
        • Staking and Unstaking
          • Event ProviderJoined()
          • Event ProviderLeft()
        • Claiming and Restaking Rewards
          • Event RewardsClaimed()
          • Event RewardsStaked()
  • Developer Guides
    • Bancor Vortex Burner
    • Bancor Etherscan Guide
      • Etherscan Basics
      • Deposit
      • Deposit and Join
      • Rewards: Joining Standard Rewards
      • Rewards: Stake & Claim
      • Rewards: Leaving the Rewards Contract
      • Withdrawing Tokens
        • Initiating the Withdrawal
        • Completing the Withdrawal
      • Migrating V2.1 Positions
      • Rewards: Auto Compounding Rewards Distribution
    • REST API
      • API Reference
      • DLT Identifier
Powered by GitBook
On this page
  • 1. Identify if there is a program
  • 2. Identify if the program is active
  • 3. Identify the poolToken address
  • 4. Stake bnTokens into standard rewards
  1. Developer Guides
  2. Bancor Etherscan Guide

Rewards: Joining Standard Rewards

PreviousDeposit and JoinNextRewards: Stake & Claim

Last updated 2 years ago

This section explains how to stake bnTokens into standard rewards program. Note that if you followed the process in Deposit and Join, your tokens have already been staked in the rewards program.

Standard rewards program is an opt-in program where users can stake their bnTokens and receive rewards and bonuses (typically different token from the deposited one)

1. Identify if there is a program

This step explains how to identify if there is a standard rewards program for the bnTokens you hold in your wallet.

  • Visit the StandardRewards contract

  • Execute the latestProgramId function (this is a Read function)

Input variable

Name
Type
Description

pool

address

The reserve token address (i.e. LINK, DAI, BNT etc)

Output response

Name
Type
Description

id

uint256

The unique ID for the latest created program for the indicated token

2. Identify if the program is active

This step explains how to identify if the latest standard rewards program ID (found in the previous step) is active.

  • Visit StandardRewards contract

  • Execute the isProgramActive function (this is a Read function)

Input variable

Name
Type
Description

id

uint256

The unique standard rewards ID (found in the previous step)

Output response

Name
Type
Description

bool

boolean

True/False indication (True means the program is active)

3. Identify the poolToken address

This step explains how to find the bnToken address.

Option 1:

If you have bnTokens in your wallet, you can use etherscan to find them.

  • Type the bnToken name in the following format 'bn' and the token name (i.e. bnDAI, bnBNT, etc)

  • Click on the bnToken in your wallet

  • Find the Contract address

Option 2:

  • Execute the poolToken function (this is a Read function)

Input variable

Name
Type
Description

pool

address

Reserve token address (i.e. BNT, DAI, LINK, etc address)

Output response

Name
Type
Description

poolToken

address

The pool token address

  • 4. Approve contract interaction

This section explains how to allow the contract to interact with your wallet (this is only an approval step).

  • Connect your wallet as explained in "Using Etherscan"

  • Execute the Approve function (this is a Write function)

_spender

_value

The bnToken amount you would like to stake

  • Click Write to sign the Approve in your wallet

4. Stake bnTokens into standard rewards

This step explains how to complete the flow and stake your bnTokens into the standardRewards contract.

  • Execute the join function (this is a Write function)

Input variable

Name
Type
Description

id

uint256

Unique standard rewards program ID

poolTokenAmount

uint256

The amount of bnTokens you would like to stake

Congrats! Your bnTokens are now staked into the standardRewards program

Visit and search for your wallet address

Visit bancorNetworkInfo contrat on

Visit the relevant bnToken contract () on

The address of the standardRewards contract

Visit standardRewards contrat on

etherscan.io
etherscan
etherscan
etherscan
found in the previous step
found here
on etherscan
on etherscan