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.
The staking contracts migrated from Ethereum to Arbitrum in January 2021.
- Arbitrum Staking Portal: https://arb1.marlin.org/relay/operator
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.
- Ethereum Staking Portal: https://app.marlin.org/relay/operator (to be used to undelegate and withdraw tokens only)
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.
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.
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.
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.
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’.
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.
Clicking on MetaMask will connect the wallet address to the staking portal.
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.
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.
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
- Click the Register button on the top navigation bar or directly go to https://arb1.marlin.org/relay/operator/register.
-
The operator address will auto-fill to the connected address.
-
In the network dropdown, choose the blockchain network you would like your cluster to support.
-
Enter the address you would like your commissions to be allocated to. This address can be the same or different from your operator address.
-
Enter the client key loaded in your cluster machines.
-
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.
-
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.
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).
Once registered, users holding POND or MPond (as well as individuals/entities running the cluster) can delegate to the cluster.
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
-
To participate in the Marlin network, go to https://arb1.marlin.org/relay/operator.
-
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.
-
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.
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.
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.
- Delegating to an operator
Once you have zeroed in on an operator, click the Delegate icon in the last column.
- 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.
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.
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.
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.
- 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.
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.
- 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.
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.
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.
- 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.
-
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.
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.
- 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.
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.
- 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.
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.
- 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.
Canceling redelegations are instant and users can cancel redelegation requests even after the 6 hour redelegation period is over.
- 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.
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).
- 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.
- 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.
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).
- 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.
- 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.
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.
- 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.
- Viewing Reward Claim History
To view the rewards claimed (automatically or manually), users need to click on ‘History’ in the Unclaimed Rewards page.
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.
Cluster operators can view their rewards by clicking on the ‘My Cluster’ tab in the Rewards History page.
- 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.
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.
- 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.