Marlin staking for Dummies

Tully The Fish
Marlin
Published in
15 min readMar 7, 2021

Our previous article walked you through the economics of staking in the Larvanet. This post provides step-by-step instructions on how to stake and delegate POND and MPond using the Relay app.

Note: This blog post has been updated on 20th October 2021 to reflect the new UI and feature addition on the staking portal.

UI Updates:

  1. The operator page displays all information without users having to switch through tabs to see cluster performance metrics.
  2. Users can filter delegated clusters on the operator page to view all their delegated clusters’ performance at a glance.
  3. Split and Merge stash feature integrated in the UI
  4. Cancel redelegations and undelegations feature integrated in the UI.
  5. Improved how the stashes and notifications appear in the delegate page.
  6. Claim history page to show users when rewards were withdrawn.

Reach out to us on Discord to report bugs and/or suggest improvements.

Understanding the User Interface

https://app.marlin.pro/relay/operator is the site to visit for all staking-related activities. It defaults to the Operator page which shows a list of Cluster Operators to whom users can delegate their POND and/or MPond.

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 our documentation for more details and reach out to us on Discord in case of queries.

Note: Users only looking to stake their POND/MPond need NOT register as an operator.

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 allows users to view their existing delegations (stashes), claim rewards, update stashes or even create new delegations (stashes) as an alternative to using the Cluster Operator page.

Connecting your wallet

Users can connect their wallet by clicking 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. For the purpose of this guide, we will be showing steps to connect via MetaMask. Click on MetaMask.

Users are required to be on the Ethereum Mainnet Network in order to stake their POND/MPond.

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.

Note that 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 to us on Discord.

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

2. The operator address will automatically load to the connected account.

3. In the network dropdown, choose the blockchain network you would like your cluster to support. At the moment, only Ethereum is available as an option. However, as new networks are added, supporting one network over the other might become more profitable.

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

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

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

7. Once registration is complete, you should be able to see your cluster in the list of clusters at https://app.marlin.pro/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. Note that for your cluster and its delegator to be eligible for rewards, a minimum of 0.5 MPond needs to be delegated to it.

Steps to delegate POND and/or MPond

(i) Where to delegate

Go to https://app.marlin.pro/relay/operator.

(ii) 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. Since there’s no slashing risk in the Larvanet, APR is probably the metric most users would be interested in. Clicking on POND or MPond under APR sorts the clusters in increasing/decreasing order of APRs. The APR for POND can be different from the APR for MPond for the same cluster.

Note: 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.

Note: 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.

(iii) Delegating to an operator

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

(iv) Creating a stash

On clicking the delegate icon, a popup will open with the operator address of the cluster chosen pre-filled. 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: If users are delegating POND and MPond to the same operator, then they 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 mined, 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.

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 mined, 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 mined, 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.

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

Note: The ‘Add Stash’ button in the delegate page is an alternative to Step (iii) and requires an operator address to be entered manually in the pop-up that appears in step (iv). All the other steps remain the same.

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

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.

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

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.

Note: The unbonding period was initially set to 30 days and was changed to 7 days after this proposal was passed.

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.

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

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.

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

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

(xi) 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 EtherScan).

Points to note when splitting a stash:

  1. 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.
  2. 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.
  3. Users can split a stash during the undelegation timer of 7-days. However, both stashes will have the same undelegation timer after the split.
  4. 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.

(xii) 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 EtherScan).

Points to note when merging a stash:

  1. Users cannot merge two stashes if one or both stashes have an ongoing redelegation and/or undelegation.
  2. Users can only merge two stashes at a time.

(xiii) 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, splitting stashes, merging stashes or adding tokens to a stash. A cluster operator’s rewards are auto-claimed every time any delegator interacts with the stash delegated to the operator.

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

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.

Points to note when manually claiming rewards:

  1. Rewards earned by multiple stashes delegated to the same operator will appear under the operator name/address.
  2. Users need to claim rewards for each operator separately.

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

(xv) 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:

  1. Pending undelegation timer.
  2. Pending redelegation timer.
  3. Action to be taken after the undelegation timer of 7-days is over.
  4. Finalize redelegation after completing the 6-hour wait period.
  5. Cluster operator is unregistering timer.
  6. Cluster operator has unregistered notification.

And that’s about it. You’re all set to start staking.

Important points to keep in mind before staking:

  1. You 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.
  2. 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.
  3. 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.

Let us know on Discord if the above tutorial doesn’t cover any queries you have.

Happy staking!

Follow our official social media channels to get the latest updates as and when they come out!

Twitter | Telegram Announcements | Telegram Chat | Discord | Website

Originally published at https://www.marlin.pro on March 7, 2021.

--

--