Skip to main content

Staking

In order to join the Marlin network, users need to stake POND and/or MPond. This section provides users with a step-by-step guide on the process.

info

The staking contracts migrated from Ethereum to Arbitrum in January 2021.

Users who have not migrated their stashes from the Ethereum to Arbitrum earlier will need to undelegate and withdraw their tokens on the Ethereum network and use the official Arbitrum Bridge to move their tokens to Arbitrum and participate in the Marlin network.

Understanding the User Interface

The Operator Tab

To participate in the Marlin network, visit https://arb1.marlin.org/relay/operator. The Operator page shows a list of Cluster Operators on the Marlin network to whom users can delegate their POND and/or MPond.

Operator Page

The Register Tab

The Register tab is used by individuals/entities looking to register as a Cluster Operator. A cluster requires a minimum delegation of 0.5 MPond to operate on the Marlin network. Individuals/entities looking to run a cluster on the Marlin network can visit the documentation section for more details and reach out to on the relevant channels on Discord in case of queries.

note

Users looking to stake their POND/MPond need NOT register as an operator. Registering as a Cluster operator is only for those who wish to operate Marlin nodes in the Marlin network.

The registration page automatically switches to an 'Update' page to modify a cluster’s on-chain parameters when logged in through an address that already serves as a Cluster Operator. Operators may use this section to change their network, reward address, client key and fee.

Register Page

The Delegate Tab

The Delegate tab allows users to view their existing delegations (stashes), claim rewards, update stashes and create new delegations (stashes) as an alternative to using the Operator page.

Delegate Page

note

Staking contracts have migrated from Ethereum to Arbitrum. Users looking to participate in the Marlin network will need to move their POND/MPond tokens using the official Arbitrum Bridge

Adding the Arbitrum network to your MetaMask wallet

Visit Arbiscan, scroll to the bottom right and click on the ‘Add Arbitrum Network’ button. This will prompt a pop-up on MetaMask which users will need to ‘Approve’ and then ‘Switch Network’.

Arbitrum Metamask

After adding the Arbitrum network to MetaMask, connect your wallet on MetaMask to https://arb1.marlin.org/relay/operator.

Connecting your wallet

Click on the ‘Connect Wallet’ button on the top right.

Users will be prompted with a pop-up to select MetaMask or WalletConnect. Hardware wallet users can connect using Metamask by choosing the Connect with Hardware Wallet option. This guide will show steps to connect via MetaMask.

For the purpose of this guide, we will be showing steps to connect via MetaMask.

Connect Wallet

Clicking on MetaMask will connect the wallet address to the staking portal.

Connect to MetaMask

Once connected, the truncated address connected to the DApp can be seen at the place where the Connect Wallet button was present. Additionally, the wallet to the right (in the Delegate page) now displays the POND and MPond balance in the connected account.

Wallet Connected

note

The wallet on the Delegate page has two tabs - Delegator and Cluster. The Delegator tab shows aggregate information relevant to the connected address when it is delegating POND/MPond to one or more clusters. On the other hand, when connected as a Cluster Operator, the Cluster tab shows info about delegations to the cluster. If the same address is functioning as both a delegator and cluster operator, different information will be displayed under them.

Delegator and Cluster Wallet Tabs

Individuals/entities looking to run their own cluster may proceed to the next section. Users who plan on delegating to a cluster operator can skip to the next section and proceed to Delegating POND and/or MPond.

Register a Cluster/Become an Operator

Documentation for running a cluster is available here. For support, reach out in the relevant channels on Discord

  1. Click the Register button on the top navigation bar or directly go to https://arb1.marlin.org/relay/operator/register.

Register Operator

  1. The operator address will auto-fill to the connected address.

  2. In the network dropdown, choose the blockchain network you would like your cluster to support.

  3. Enter the address you would like your commissions to be allocated to. This address can be the same or different from your operator address.

  4. Enter the client key loaded in your cluster machines.

  5. Enter the fees (0-100) you would like to charge your delegators. The commission is applied only on the rewards and not the principle delegated.

  6. Once registration is complete, you should be able to see your cluster in the list of clusters at https://arb1.marlin.org/relay/operator. Feel free to use the search bar! If you would like to have a moniker displayed next to your operator address, please fill this form.

Registered Clusters

Operators can update any of the above values anytime by logging in using the same operator address and visiting the Register tab. The updates take 0 to 6 hours to take effect depending on the nature of the update. You may also unregister the cluster by clicking the ‘Unregister’ button next to the ‘Update’ button. Unregistration takes 30 days to complete. During the unregistration period, both the operator and the delegator will continue to earn rewards based on performance of the operator. However, once the undelegation period is over, the cluster will be auto-removed and won’t earn any rewards for stashes delegated to it. Users delegating to the unregistered cluster will need to redelegate their tokens to another operator to continue earning rewards (redelegations are covered later in the guide).

Register Page Updates

Once registered, users holding POND or MPond (as well as individuals/entities running the cluster) can delegate to the cluster.

note

For a cluster and its delegators to be eligible for rewards, a minimum of 0.5 MPond needs to be delegated to it.

Steps to delegate POND and/or MPond

  1. To participate in the Marlin network, go to https://arb1.marlin.org/relay/operator.

  2. Identifying an operator to delegate to:

If you know a cluster you would like to delegate to, key in its operator address or name in the search bar. If not, use the metrics displayed on the operator page to identify a cluster to your liking.

note
  • The APR for POND/MPond can be different for the same cluster.

  • The APR mentioned for POND/MPond in the operators page is AFTER deducting the operator’s fee.

Operator Page Statistics

Users looking to identify the historical performance of an operator can do so by clicking on the bar chart icon on the operator page (under the Actions column). This was built by one of our community members, Brightlystake.

Statistics Page

note

The APR for POND/MPond changes depending on the total number of delegations an operator receives and the operator’s performance. Therefore, an increase/decrease in delegations to an operator may result in the APR fluctuating. Similarly, an increase/decrease in cluster performance may result in the APR varying. Cluster performance metrics are updated every 5 minutes and total delegations are updated once new delegations are confirmed. Refresh/reload the operator page to view the updated performance metrics and total delegations.

  1. Delegating to an operator

Once you have zeroed in on an operator, click the Delegate icon in the last column.

Delegate

  1. Creating a stash

On clicking the delegate icon, a popup will open pre=filled with the operator address of the cluster chosen. Enter the amount of POND and/or MPond you would like to delegate and click the approve button next to them which will prompt a MetaMask pop-up which the user needs to confirm.

note

Users are delegating POND and MPond to the same operator would need to approve both POND and MPond before clicking on the confirm button. The confirm button will not be clickable until the POND and/or MPond amount is approved.

Create Stash Approve

Once the ‘Approve’ transaction has been confirmed, the text in the create stash pop-up will change from ‘Approve’ to ‘Approved’. Users can now click the Confirm button to create a stash with the entered amount of POND and/or MPond tokens and delegate it to the chosen cluster.

Create Stash Confirm

note

If for any reason, the browser window (or the create stash pop-up) closes while the ‘Approve’ transaction is made but yet to be confirmed, users can reattempt this step by clicking on the delegate icon for the same operator or by clicking the ‘Add Stash’ button in the delegate page. Once the transaction is confirmed, enter the same POND and/or MPond amount that was put earlier along with the operator address and the text will automatically change from ‘Approve’ to ‘Approved’ and the ‘Confirm’ button will become clickable.

  1. Verifying your delegations

Once the delegation is confirmed, users will see a new stash in the list under My Stashes on the delegate page. It will show the operator address (cluster), stash ID, fee, APR (toggle between POND/MPond) and total POND/MPond (toggle between the two) staked for that particular stash ID.

My Stashes

note

The ‘Add Stash’ button in the delegate page is an alternative to Step 2 and requires an operator address to be entered manually in the pop-up that appears in Step 4. All the other steps remain the same.

  1. Adding more POND and/or MPond to an existing stash

Users can delegate more tokens to the same stash by clicking on the arrow icon located at the last column in the My Stashes table. Doing so will drop down a menu bar. Click on the ‘Add Tokens’ button.

Add Tokens

Post this, users will see an ‘Add Tokens’ pop-up where they can enter the amount of POND and/or MPond tokens to add to the current stash ID. Users will need to approve and then confirm the same via MetaMask.

Confirm Added Tokens

Important

When POND and/or MPond tokens are added to a stash, they move to a smart contract from your address holding those tokens. As a result, you will see your POND or MPond balance in your wallet reduce accordingly.

  1. Undelegation & Withdrawals

Withdrawing tokens from a stash requires users to undelegate the stash first. To undelegate, click on the arrow icon located at the last column in the My Stashes table followed by the ‘Undelegate’ button. After confirmation, users will need to wait for 7 days before they can interact with the stash. Once the 7-day undelegation period is over, users can either withdraw tokens back to their address, add to the stash or delegate to an operator.

Undelegate

note
  • Rewards are not earned during the undelegation period.

  • Users can also cancel undelegations. However, they can only do so 6-hours after the undelegation request was made and before the 7-day wait period ends.

Users need to click on the ‘Withdraw’ button once the 7-day undelegation period is over to withdraw their staked tokens.

Withdraw Tokens

On clicking the ‘Withdraw’ button, users will receive a pop-up allowing them to enter the amount of POND and/or MPond they wish to withdraw. Click on ‘Confirm’ to withdraw the tokens to your connected address.

Alternatively, if users decide not to withdraw their tokens after the 7-day undelegation period, they can either delegate to another operator or add more tokens to the stash.

The flexibility of creating multiple stashes not only allows users to delegate parts of their tokens to different operators but also allows them to undelegate and withdraw part of their tokens while still delegating the rest in another stash.

  1. Cancelling Undelegations

Users can cancel undelegation requests during the 7-day waiting period. However, users cannot cancel undelegation requests for the first 6 hours and after the 7 day undelegation period. Click on the ‘Cancel’ option under the activity section to proceed with the cancellation process.

Cancel Undelegation

In order to cancel the undelegations, users will need to enter an operator address (the same or different operator address) to redelegate to and click the ‘Cancel Undelegation and Redelegate Stash’ button. The same needs to be confirmed via MetaMask.

Cancel Undelegation and Redelegate

  1. Redelegation

Users can redelegate their stash to another operator of their choice by clicking the ‘Request to Redelegate’ button located in the My Stashes table, post which they will receive a pop-up asking them to enter the new operator address. Upon entering the new operator address, users will need to confirm the same via MetaMask.

Request to Redelegate

note

Redelegation is a two-step process. Users first need to ‘request to redelegate’, post which there is a 6-hour waiting period. After 6 hours are completed, users will need to click on the redelegate button in order to complete the process. Redelegations can be canceled during and after the 6-hour wait period. Users will continue to earn rewards from the previous operator until they complete the redelegation process.

Redelegate

  1. Cancelling Redelegations

Users can cancel redelegation requests by clicking the ‘Cancel’ option under the activity section. By canceling the redelegation request, users will continue to be delegated to their existing operator.

Redelegate

Canceling redelegations are instant and users can cancel redelegation requests even after the 6 hour redelegation period is over.

Cancel Redelegation

  1. Splitting Stashes

Users can split a particular stash that they’ve delegated to in order to partially redelegate their tokens to another operator or partially withdraw (undelegate) their tokens. In order to split a stash, users need to click the arrow icon and then the ellipsis icon (three dots) which appear in the last column of the My Stashes table.

Split Stash

Clicking on the ‘Split Stashes’ option will provide users with a pop-up where they can enter the amount of POND and/or MPond tokens they would like to split into another stash. Clicking the ‘Confirm Split’ button will create a new stash with the amount of split tokens delegated to the same operator. Splitting stashes are immediate (after the transaction is confirmed on Arbiscan).

Split Stash pop up

Points to note when splitting a stash:
  • Users can split a stash during the redelegation timer of 6-hours. However, the redelegation timer is effective only for the first stash and not the newly split stash.
  • Users can split a stash after the redelegation timer is over. However, the newly split stash will be delegated to the initial operator and not the new operator.
  • Users can split a stash during the undelegation timer of 7-days. However, both stashes will have the same undelegation timer after the split.
  • Users can split a stash after the undelegation timer of 7-days is complete. Both stashes will not be delegated to any operator after the timer is over.
  1. Merging Stashes

Users can merge two stashes delegated to the same operator. Merging stashes will combine the POND and/or MPond delegated to the same operator into a single stash ID. Users may choose to either redelegate to a new operator or undelegate after the stashes are merged.

In order to merge two stashes, users need to click the arrow icon and then the ellipsis icon (three dots) which appear in the last column of the My Stashes table.

Merge Stash

Clicking on the ‘Merge Stashes’ option will provide users with a pop-up where they will need to enter the stash ID they want to merge with the current stash. Users can click the copy icon next to the stash ID, paste the same in the merge stashes pop-up and click on ‘Confirm Merge’. Merging stashes are immediate (after the transaction is confirmed on Arbiscan).

Merge Stash pop up

Points to note when merging a stash:
  • Users cannot merge two stashes if one or both stashes have an ongoing redelegation and/or undelegation.
  • Users can only merge two stashes at a time.
  1. Claiming Staking Rewards

Rewards are distributed once per day. A user’s staking rewards can be claimed automatically or manually. A delegator’s rewards are auto-claimed for a particular operator when they interact with a stash via redelegations, undelegations or adding tokens to a stash. A cluster operator’s rewards are auto-claimed every time a delegator interacts with a stash delegated to the operator (via new delegations, claiming rewards, redelegating, undelegating or adding tokens).

To claim rewards manually, users need to click on the ‘Claim’ button on the delegate page.

Claim Rewards

note

Rewards can be withdrawn at any time and do not affect on-going delegations. Users can choose to accumulate rewards before withdrawing.

On clicking the claim button, users will be redirected to the Unclaimed Rewards page where they will be able to see their total unclaimed rewards, total claimed as well as a breakdown of the unclaimed rewards by operator. Clicking on the ‘Claim’ button next to a particular operator will prompt users with a MetaMask pop-up which they can approve in order to claim their earned rewards.

Unclaimed Rewards

Points to note when manually claiming rewards:
  • Rewards earned by multiple stashes delegated to the same operator will appear under the operator name/address.
  • Users need to claim rewards for each operator separately.
  1. Viewing Reward Claim History

To view the rewards claimed (automatically or manually), users need to click on ‘History’ in the Unclaimed Rewards page.

Rewards History

On clicking History, users will be redirected to another page that shows the list of all claimed rewards to date. Information is separated by operator (with a filter option), amount claimed, date, type (auto or manual) and transaction hash.

Delegator Rewards History Page

Cluster operators can view their rewards by clicking on the ‘My Cluster’ tab in the Rewards History page.

Cluster Rewards History Page

  1. User alerts and notifications

When a cluster operator is changing their fee or is unregistering, a notification will appear in the fee column on the Operators page. Similarly, if a user is delegated to an operator that is changing their fee or unregistering, an alert icon will be displayed in the My Stashes table on the delegate page and on clicking the arrow icon, the entire alert will be displayed under the activity section.

Operator Fee Change

Other notifications given to users in the My Stashes table are:

  • Pending undelegation timer.
  • Pending redelegation timer.
  • Action to be taken after the undelegation timer of 7-days is over.
  • Finalize redelegation after completing the 6-hour wait period.
  • Cluster operator is unregistering timer.
  • Cluster operator has unregistered notification.
Important points to keep in mind before staking:
  • Users CANNOT stake POND from an exchange. To stake POND, you will have to send your POND tokens from an exchange to an ERC-20 wallet. Ensure that your wallet also has ETH as staking requires gas fees to be paid in ETH.
  • Staking contracts have migrated to the Arbitrum network. POND/MPond tokens on the Ethereum network will need to be migrated to Arbitrum via the official Bridge.
  • If you’ve earned MPond via FlowMint and would like to stake them/run a cluster, you will need to harvest them and transfer the rewards from the Polygon Mainnet Network to the Ethereum Network. The guide to claiming MPond rewards for FlowMint is available here.
  • If POND delegated to any particular operator is 0, the APR is calculated assuming a delegation of 1 POND so users may see some abnormally high APRs. This will balance out over time as more users delegate to said operators.

And that’s about it. You're all set to participate in the Marlin Network!

Reach out to the community on Discord for assistance.