wPOKT Green Paper ♻

Authors: @adam @o_rourke @JackALaing @JaureguiA

Introduction

An Ethereum bridge with a wrapped POKT (wPOKT) token creates an opportunity to build a virtuous growth cycle for Pocket Network. wPOKT would tap into Ethereum’s composable DeFi ecosystem, bringing greater liquidity to POKT while simultaneously funding a free tier for Apps.

This implementation, called Data Farming, would allow Ethereum users to stake for infrastructure on behalf of their favorite Ethereum applications (Apps) to earn rewards. The staking performs two functions for Pocket: 1) it provides Apps with a mechanism to crowdsource free infrastructure from their users through network-specific pools and 2) drives liquidity to wPOKT and subsequently POKT through proven liquidity farming mechanisms.

This means there are now two opportunities for users to profit from supporting Pocket Network’s economy: stake POKT tokens as a Node Runner in the native Pocket Network – earning staking rewards, serving relays to Apps, and securing the network – or stake wPOKT as a Farmer – earning farming rewards, subsidizing relays for Apps, and liquidizing the network. This creates a virtuous cycle that provides a compounded and synergic reward:

The top left corner of the diagram depicts the standard flywheel of Pocket’s two-sided market, popularized by Andrew Chen’s analysis of Uber, wherein supply growth boosts demand growth through improvements in service quality. This model applies to Pocket Network too because the more Nodes we have, the more redundant our infrastructure is, the more reliable our service will be compared to centralized alternatives.

However, like all two-sided markets, we have a chicken-and-egg problem; how do we seed the critical mass of demand required to start the flywheel spinning? That’s where Data Farming comes in: by incentivizing Farmers to subsidize infrastructure for Apps, we eliminate switching costs for App developers, and by rewarding Farmers proportionally to the demand (relays) they bring to the network, we promote the most rapid demand growth possible.

By augmenting Pocket Network’s core market with a Data Farming economy, we direct liquidity farming mechanisms towards a noble purpose – being the supercharger on the flywheel of a true public good. This revolutionary new economy will coordinate DeFi “degenerates” towards a regenerative outcome – planting rather than extracting value – by decommissioning centralized points of failure and bringing crypto back to its decentralized roots.

Goals

  • Accelerate Ethereum developer usage in Pocket Network
  • Provide an incentive for Ethereum enthusiasts to get involved in Pocket Network
  • Increase liquidity for POKT by creating a POKT/wPOKT bridge
  • Plant the foundation for a sustainable infrastructure market

Bridge Construction

pasted image 0

Staking Pool

Staking Pools are Ethereum smart contracts where wPOKT holders stake wPOKT to earn yield proportionate to the number of relays subsidized by the pool. Upon launch, we plan to create a single Staking Pool that aggregates all relays from Ethereum applications using Pocket Gateway. We’re calling this type of network-wide pool a Network Pool. This initial pool will encourage Farmers seeking a higher yield to promote Pocket to any Ethereum application that would generate a large number of relays. The pool will allocate available relay allowances to applications on a first-come, first-served basis.

In the future, this could be opened up to additional Network Pools outside of Ethereum, or App-specific pools (App Pools), to facilitate more diverse yield opportunities. For example, if a Farmer believes a specific network (chain, subgraph, etc.) or App will be more popular than others, the Farmer can take advantage of that prediction by staking only on that network or App. This will encourage Farmers to seek out new high-value Apps for Pocket Network and subsidize them to increase the odds that they’ll adopt Pocket Network over competing solutions. Staking on networks also creates a signal to Node Runners that they should prepare their infrastructure for incoming demand on a particular network, readying the supply side of Pocket and reducing the lag on network capacity.

Staking Rewards

For the wPOKT farming MVP, we’ll be basing our token reward system on the AMPL Geyser V1 smart contract. In this system, rewards are earned based on the total ownership of unlocked rewards in a pool. Rewards are unlocked in fixed intervals (daily, weekly, etc.) and Farmers will accumulate ownership stakes in the unlocked rewards. Reward ownership is calculated based upon the amount of time a stake is staked and the number of wPOKT staked. A consequence of the design of the AMPL Geyser smart contract is that Farmers earn a percentage of the pool rewards, but cannot receive their rewards until the stake is withdrawn.

This is designed to reward those who identify, stake, and commit to promising sources of relays. Additionally, this has the effect of ensuring that yield is proportional to the relative commitment to a pool. Older stakes have more weight, therefore, more reward than newer stakes.

Interestingly, this program can be used as a way to earn yields from accurately predicting growth in traction for Pools. This could be used as a way to earn from a pool’s future user growth without relying on the network to design token economics that captures the value of that user growth.

Calculating Rewards

A Farmer’s ownership of the unlocked rewards is calculated based on the amount of wPOKT staked and the duration of the stake compared to the total universe of wPOKT staked and the duration of the total stake. The calculation to determine ownership is simply:

User_staking_token_time / Global_staking_token_time`

To calculate a Farmer’s User_staking_token_time it is a matter of multiplying the number of tokens by the amount of time:

User_staking_token_time = # staked tokens * time staked

Global_staking_token_time is a simple sum of all User_staking_token_time:

Global_staking_token_time = User1_staking_token_time + User2_staking_token_time + UserN_staking_token_time

Below is a simple illustration of how the system works with maximum bonus engaged (explained later):

Valeria_token_time = 10 tokens * 1 days = 10
Jack_token_time = 5 tokens * 3 days = 15

Global_staking_token_time = (Valeria_token_time) + (Jack_token_time) = 25 token_time

Valeria owns (10 / 25) = 40% of unlocked rewards
Jack owns (15 / 25) = 60% of unlocked rewards

Unlocked rewards are rewards that have been deposited in the pool and are eligible for claiming by pool owners. This is calculated based on:

Unlocked rewards = rewards per period * number of periods

Thus, a user’s reward can be calculated based by the following equation:

Farmer Reward = Unlocked rewards * User_staking_token_time / Global_staking_token_time

Bonus Rewards: A long-term incentive

The smart contract is meant to incentivize long-term Farmer staking. While there are no hard lockups for staking, there is a benefit to keeping your staked position longer.

All stakes begin with a 1X bonus multiplier for their rewards. The multiplier increases linearly to a maximum of 3X after 60 days. Each stake has its own stake_token_time, so each stake will have its own unique bonus amount, up to 3X. The system is designed as last-in, first-out meaning that Farmers are always unstaking their most recent stake. This method preserves the Farmer’s most valuable stake.

To simplify: Try to keep the stake for at least 60 days for all stakes to maximize rewards.

Distribution Event

wPOKT will be distributed with on a Balancer Smart Pool using a wPOKT/Stablecoin pair due to the ability to easily manage the distribution of wPOKT, ensuring a fair launch for the project.

Specifically, we’ll be using the Balancer Smart Pool as a Liquidity Bootstrapping Pool. In this use case, token weights will be adjusted over a fixed period of time (3-7 days) time having the effect of theoretically reducing the cost of wPOKT over the course of the distribution event.

This approach allows a lean launch with low capital requirements. The weights will be initially set heavily in favor of the wPOKT token, then gradually “flip” to favor the collateral token (a stablecoin) by the end of the sale.

The exact curve is to be determined (will update this section in the future), but the aim of the curve will be to keep the price more or less steady while building in downside protection with a minimum price that is close to mainnet POKT.

After the distribution event is complete, there will be a larger amount of stablecoin “the proceeds” and a small amount of wPOKT left in the pool. These balances will be transferred to and used as the seed liquidity for a public AMM pair. Until there is significant liquidity for the trading pair, as determined by the DAO, no proceeds from the distribution event will be returned to the Foundation/DAO.

Market Maker

After the initial distribution event, wPOKT will be listed on a popular platform like Uniswap to provide an on/off ramp for farmers.

Uniswap and other AMMs are disconnected from external markets. When the token prices change on external markets, AMMs don’t have a mechanism to automatically adjust their prices. Instead, it requires an arbitrageur to buy the underpriced asset or sell the overpriced asset until the prices adjust along that curve to match outside markets, the point where there is no profit to be extracted by arbitrageurs. During this process, the profit taken by arbitrageurs is effectively extracted from liquidity providers, resulting in an impermanent loss to liquidity providers. If the pool returns to the state at which the liquidity provider entered the pool, the losses due to price movements disappear.

In this case, with no planned external market for POKT, impermanent losses are less important to the overall proposal when compared with a liquid token. Arbitrageurs will not have external markets to arbitrage with, thereby eliminating this incentive. Only when a user can identify an over or underpriced token and execute trades to take advantage of the price differences will this come into effect.

Until both POKT and wPOKT have liquidity, the only users of the AMM will likely be Farmers who are buying and selling wPOKT to enter and exit the Staking Pools. With this in mind, we are recommending Uniswap as the AMM based upon current levels of liquidity, volume, and the effects of impermanent loss.

Pricing Parity and Liquidity

When deemed appropriate, the Foundation will release a cross-chain swap that allows purchasers to swap between POKT and wPOKT. There is likely to be a pricing discrepancy between POKT and wPOKT due to the use of an AMM; therefore, arbitrage opportunities will be plentiful at first. We intend to democratize the arbitrage so that the Pocket Network Foundation is not directly profiting from trading. The following diagrams illustrate the procedures that an arbitrageur would use to profit from the pricing disparity between POKT and wPOKT.

Price of wPOKT Exceeds POKT

A trader seeking to earn a profit would buy new POKT or swap existing POKT for wPOKT, sell wPOKT at the Automated Market Maker in exchange for stablecoin, and then sell stablecoin on an exchange for a profit. This has the effect of reducing the price of wPOKT at the AMM.

image

Price of POKT Exceeds wPOKT

A trader seeking to earn a profit would purchase wPOKT on the AMM with stablecoin, swap wPOKT for POKT, and then sell POKT on an OTC for a profit. This has the effect of increasing the price of wPOKT at the AMM.

Interface

The plan at the time of publishing is to use the Token Geyser smart contract with few if any changes. It’s worth noting that wPOKT will not use any rebasing functionality that Ampleforth leverages. Below are a sampling of the major functions:

stake(uint256 amount, bytes calldata data) 
unstake(uint256 amount, bytes calldata data)
TokensLocked(uint256 amount, uint256 durationSec, uint256 total)
computeNewReward(rewardAmount, newStakingShareSecondsToBurn, stakeTimeSec)
unlockTokens()

wPOKT / POKT Coordination

Oracles keep track of the amount of wPOKT staked in all pools (a single Ethereum Network Pool to begin with), feeding into our AAT system. A pool’s wPOKT stake multiplied by the “max relays” parameter on Pocket Network determines the max relays the system will permit for that pool in any given session. That pool’s max relays will be divided amongst Apps on a first-come, first-served basis.

At first, AATs will be created manually by the Pocket Network Core Team for use on the gateway. The team will validate there is enough stake to safely run a given application on Pocket Network. If there is enough wPOKT staked in the staking pool for the relays they are requesting, the PNI team will create their AAT. If there isn’t enough in either to cover the requested relays, the PNI team will support the application in encouraging the user base to stake more wPOKT or will sell the necessary POKT to the application to get started immediately. In this scenario, an App could have both wPOKT and POKT staked for their application. Eventually, the community may step in and fully stake their pool, in which case the App could choose to sell their POKT.

Governance

Project Approval

The Data Farming project will be officially approved by the DAO through a Pocket Ecosystem Proposal (PEP) that Pocket Network Foundation will submit.

Contract Ownership

The smart contracts used in the Data Farming economy will be owned by the Signers.

Contract Upgrades

Smart contracts can be upgraded by the DAO by approving a PIP, e.g. to refine yield formulas or bonding curves.

Emergencies

The DAO may at any time authorize the use of the pause or upgrade smart contract functions in emergencies.

Project Future

In the future, upon DAO approval, the DAO could use its funds to permanently support the Data Farming economy based on their analysis of the sustainability of the economy.

Trust

The Signers are trusted to securely hold assets to ensure one-to-one backing. We aim to minimize trust through the following mechanisms:

  • The DAO will hand-select trusted parties from the Pocket ecosystem.
  • Audits can be conducted by the DAO at any time to verify that all wrapped tokens minted have an equal amount of assets stored by the custodian.
  • Existing credibility is at stake for all the parties involved with the framework.
  • The Foundation will explore automating the execution of the DAO’s transactions on both the Ethereum and Pocket blockchains.

Release Schedules

The data farming program will be broken down into phases according to how much wPOKT is released.

Phase 1: Proof of Concept - Initial Release and Staking Pool

The initial release will consist of a predetermined (TBD) amount of wPOKT which will be put into the Balancer Smart Pool with the equivalent amount of stablecoin. Additional modeling is required to understand the exact amount of wPOKT that will be distributed in Phase 1.

Phase 2: Additional Rewards

Upon a successful small scale launch, additional wPOKT is minted and deposited by the Pocket Network Foundation into both the AMM and the Staking Pool for distribution. The amounts will depend on the traction of the project at the time and the demand for wPOKT.

The deposit of wPOKT into the AMM will cause the price to drastically decrease and will cause significant slippage. This could have a positive effect on the market if it is overheated. Alternatively, wPOKT and stablecoin could be deposited gradually in equal amounts to eliminate slippage.

Phase 3: Full Release

In this phase, nearly all wPOKT minted by the DAO is circulating with users. In this phase, the program will reach maturity where the growth of staking will begin to settle. At this point, the DAO will reassess how long it will support the program.

Phase 4: Maturity: Reward Exhaustion & Possible Permanent DAO Support

The DAO that initially budgeted a certain number of wPOKT rewards for the program may choose to extend the life of the program by continuously adding rewards into the Staking Pool. This may be accomplished by allocating a percentage of the DAO’s revenue which is 10% of Pocket’s block reward specifically for this program. In this case, rewards would be granted in perpetuity until the DAO votes to suspend support.

Appendix

Stakeholders

POKT Multi-sig: Hold reserves of POKT to ensure that all wPOKT is backed 1:1 by POKT. The contract is controlled by a group of trusted Signers who will be selected by the DAO.

Signers: Selected by the DAO, this group of 3 individuals will be responsible for signing all transactions between wPOKT and POKT. Acting for the benefit of the program, the Signers will burn and mint wPOKT and transact POKT as necessary for the smooth operation of the wPOKT token.

DAO: Will authorize the Foundation to make an initial deposit of POKT into the Pocket Multisig wallet, the Automated Market Maker Pool, and the Staking Pool. Selects the trusted members of the Signers.

Foundation: Uses reserve funds to seed the wPOKT program and operates the user interface associated with the POKT/wPOKT cross-chain swap.

Automated Market Maker (AMM): A decentralized liquidity provider that operates an stablecoin/wPOKT swap to enable individuals to enter and exit positions of wPOKT.

Data Farmer (“Farmer”): A purchaser who stakes their wPOKT in a pool on behalf of an Ethereum application to earn a yield.

OTC: An Over the Counter trading desk operating a wPOKT/POKT swap. This enables the arbitrage necessary to keep wPOKT in price parity with POKT. This would be implemented after wPOKT gains traction.

wPOKT

Wrapped POKT (wPOKT) is an ERC-20 token backed 1:1 by POKT on the Pocket blockchain and held by a set of the POKT Multisig where the underlying holdings are verifiable. wPOKT standardizes POKT to the ERC20 format, enabling and leveraging the usage of smart contracts.

Custody

All wPOKT issued will be fully backed and verified through on-chain proof of reserves held within the POKT Multi-sig wallet. wPOKT will be minted in accordance with the amount of POKT held by the POKT Multisig, which will be determined by POKT holders’ demand for wPOKT, and will in turn be determined by the success of the program. Once the bridge is opened to the public, wPOKT will flow freely in and out of the Multisig wallet according to transactions performed by the bridge.

Minting

The minting process for wPOKT will occur when wPOKT is created by depositing POKT in the Signers’ POKT Multisig. The middleware software monitoring the POKT Multi-sig account will monitor for incoming transactions and will triage transactions for signing based on transaction size. The middleware layer could be configured to automate the signing of transactions to reduce the operational burden on the Signers. Thresholds will be established that automatically approve transactions under a certain volume to avoid manual signing of every single transaction. Once signed, the Ethereum smart contract will mint wPOKT on the Ethereum blockchain and send the wPOKT to the specified account. POKT will be held in the POKT Multisig until the wPOKT is later redeemed.

Burning

The swap from wPOKT to POKT will happen in a similar fashion but in reverse order. Users will send their wPOKT to the smart contract, burning their wPOKT. This action will be identified by the middleware software which will then create a transaction for signing by the Signers. This transaction will send the equivalent amount of POKT to the Pocket wallet specified by the user in the swap UI. Once triaged and automatically or manually approved by the Signers, the POKT will be sent to the user’s wallet.

If the volume ever exceeds the Signers’s ability to execute POKT/wPOKT swaps, trusted outside parties can then be brought in quickly to manage the process by turning over the POKT Multi-sig account, the middleware layer, and the user interface.

Distribution via Automated Market Maker Pool

Because we are taking a phased approach, the tooling for the cross-chain swap will not be available immediately for the public. Rather than assuming users will want to wrap their POKT and participate in the Data Farming program, the Pocket Network Foundation will kick start the program by depositing wPOKT in an AMM for distribution and by setting wPOKT aside for rewards. To do this, the Foundation would be the first to send funds to the POKT Multi-sig to mint wPOKT. This initial transaction would mint enough wPOKT to launch the program without the need for the cross-chain swap.

Before the cross-chain swap is opened to the public, to acquire wPOKT, purchasers will interact with an AMM (or the Balancer Smart Pool during the distribution event). This AMM guarantees the liquidity of wPOKT at all times. It does this by buying and selling tokens on a predetermined bonding curve that adjusts the price of stablecoin and wPOKT based on the amount of each asset. This curve balances supply and demand by creating arbitrage opportunities while creating a price floor for wPOKT.

image

The net result is an AMM pool that before trading is equal value wPOKT and stablecoin. The initial deposit will provide the initial liquidity for wPOKT and will set a base price for the ERC20 token.

From time to time, the Foundation, at the direction of the DAO, may mint new wPOKT and deposit that into either the AMM Pool and/or the Reward Pool. A deposit into the AMM Pool would increase the amount of liquidity in the market.

One major challenge with keeping the price in check will be that there is no opportunity for arbitrage between wPOKT and POKT.

Risks

We anticipate that this initiative will be subject to the following risks:

Code risk - A bug or vulnerability is taken advantage of and users lose their wPOKT stakes or holdings.

Impermanent Loss - the Foundation could lose a considerable portion of its funds committed to the wPOKT/stablecoin pool due to the price of one of the base pairs (wPOKT or stablecoin) rising or falling significantly compared to the other.

Liquidity - Having a public price for wPOKT will ultimately mean that the POKT held by every Pocket stakeholder will also have a price. This will change how Pocket is viewed by network participants and result in increased scrutiny on the project. Community management will be important. There are also dangers if the price of wPOKT is to fall considerably.

Price risk - wPOKT becomes less attractive to new users because of its price increase on the AMM. This results in less staking and fewer relays on Pocket Network.

Pricing Premium - It is likely that wPOKT could regularly trade at a premium to POKT. The exposure of wPOKT to the Ethereum ecosystem may provide an opportunity for many new users to gain exposure to Pocket. The ability to earn a yield without running the infrastructure of a node provides a new wave of accessibility to returns. This convenient yield may drive a slight asset premium vs holding the base token.

Third-party risk - The Signers abscond with POKT or mints too much wPOKT or is otherwise a bad actor.

Speculation risk - AMM users buy and HODL a large percentage of the overall wPOKT and don’t use it for its intended purpose.

The Pocket team has done our best to work through these risks and believe they don’t pose a significant threat to the health of the project. That said, there are always unforeseen risks, and holding/staking POKT or wPOKT isn’t without risk.

Costs

Gateway changes - the Pocket Gateway will need to change to operate seamlessly with wPOKT staking pools. AATs will need to be generated for stakes on the Ethereum blockchain.

Smart contract / multi-sig - The team will need to create and audit the smart contracts associated with the wPOKT program. This will be mitigated with the use of the Geyser smart contract.

Rewards - Rewards will be allocated weekly to encourage participation in data farming. The DAO and/or Pocket Network Foundation will need to bear this expense by depositing POKT into the POKT Multi-sig and distributing wPOKT to Farmers.

Interface - The team will need to create and maintain a user interface that enables Farmers to participate.

Contributors: @luis @Dermot @nelson @Patrick727 and many others. Thank you all for helping us get to this point.

2 Likes

Have you considered the risk of node providers switching over? Effectively turning stakers into LPs on Uniswap?

I assume prices will balance themselves out eventually, wondering if you’ve considered the possibility of a significant number of nodes going offline affecting network reliability

1 Like

Yes.

Over the long run, the amount of capital required to earn wPOKT should be significantly higher than POKT. While the market will find some equilibirum, I could see a future wPOKT acts as a funnel into mainnet to continue earning rewards.

The bridge will not be open on the day that the program launches on Ethereum. This will allow us to observe the effects with minimal impact on mainnet incentives. The first iteration will be a capped pool with static rewards. As we learn about how the market reacts, we will be able to adjust future rates with more informed data.

Also, to clarify - The only way to earn wPOKT will be to stake in one of the pools. Liquidity incentives are not contemplated in the current release.

Just adding some additional color here.

BlockquoteHave you considered the risk of node providers switching over?

@amhedh Yes, this is definitely a concern. We need to effectively balance the rewards on the wPOKT side as we don’t want an abandonment of node infrastructure. While I’m confident in the mainnet rewards (and the DAO’s ability to change these to make the incentives work), this is something we’ll keep an eye on and adjust if things become out of whack.

Ideally, this becomes an onboarding ramp from one direction to another (assuming the bridge is in place). Farmers becoming node runners and node runners simultaneously being farmers.

Effectively turning stakers into LPs on Uniswap?

Just a note on this comment, the hope would be that farmers would participate in the wPOKT smart contract as opposed to being an LP on Uniswap (due to better incentives). Due to familiarity, I think we may see some farmers just to opt to be LPs rather than wPOKT farmers, but they’ll be providing a service either way.

Great project that I think will really benefit the POKT ecosystem.

A few questions though:

  • what does ATT mean?
  • as I understand it, people staking will be rewarded with wPOKT. Are we concern with the fact that people could just farm the token and once the staking incentives are over, sell all their wPOKT?

AAT = Application Authentication Token, its essentially the key to access your allotted relays. So after you stake X amount for Y relays, you get an AAT that allows for you to use that amount.

While this is a concern, the rewards are structured in such a way that they could be perpetually funded by the DAO. In a scenario where funding never ends, that’s not really a concern. If funding rewards do end, there are two off-ramps that are going to be built 1) converting your wPOKT to POKT and 2) selling. We would do our best to wind down rather than have a sudden drop in the program to avoid mass sell-offs. Additionally, because there will be a pricing parity with POKT at that point, I’m somewhat less concerned about this as wPOKT should be only a small part of the circulating supply of the POKT token not being a huge price risk to POKT. I think between now and then we’ll create new and exciting ways to use wPOKT which will help any sunsetting of pools that may occur.

1 Like

Made some significant updates:

Created a new section for wPOKT distribution which includes our latest thinking about using a Balancer Smart Pool for the distribution event. More additions will happen here.

Removed references of ETH and included a generic “stablecoin” instead. The rationale is that we decided that a stablecoin like USDC would be a more attractive trading pair than ETH in the AMM. Updated the images to reflect this.

Changed the first feedback loop picture to use different arrows to match other diagrams. Also, updated some of the language to better reflect the ideas.

2 Likes

Will it be possible to stake POKT locked in the smart contract (when they get exchanged for wPOKT) to run a node?

My guess is that no, because you’d have your cake (earning node rewards with POKT staked) and eat it too (through wPOKT farming yield) but curious to get some colour there.

Hey @tdephuoc. Those will be locked in the multi-sig and won’t be available to use for node staking. That said, some of those tokens will be staked as an applicaiton if they are staked on the wPOKT side. For example, if 100 POKT is swapped to wPOKT, then 10 wPOKT are staked in the farming pool, 10 POKT would be staked on the Pocket side in order to run those relays on the Pocket chain.