Stairway to Ethereum: the upcoming launch of wPOKT

Update on 13 September

TL;DR

wPOKT will be ready to launch ahead of schedule.

But we’re pushing it back by 2 weeks.

New dates for your calendars are:

  • 4th Oct (Bridge live)
  • 9th Oct (Uniswap pool live)
  • 12th Oct (Incentives live)

See full post here

Update on 4 September

  • We are now on the final stretch before launch!

  • Halborn audits of the smart contracts and back-end have been completed and all remedial actions have been taken. The reports are to be released by Halborn in the coming weeks

  • The main bridge site and the wPOKT token will launch on Wednesday 20 September, which will allow POKT holders to lock up their POKT holdings and mint wPOKT

  • The Uniswap v2 wPOKT/ETH pool will launch on Monday 25 September (more details on that to follow in the liquidity thread)

  • DAO-sponsored incentives for the Uniswap pool will commence on Thursday 28 September. The gap between the launch of the Uniswap pool and the start of the incentives is to allow people enough time to add liquidity to the Uniswap pool so that they are eligible for the incentives as soon as they start.

Update on 7 August

  • All initial wPOKT development sprints have been completed.

  • A contract has been signed with Halborn to start the audit of the wPOKT bridge and smart contracts by 21st of August.

  • Subject to final testing and QA, as well as alignment around the launch plan with all relevant launch partners, we are targeting Monday 18th of September for the official launch date of the wPOKT liquidity pool and the accompanying incentives (separate post to come later this week on this). The bridge app itself will likely launch at least a week before this date, to enable live testing and for anyone to mint wPOKT to ahead of the liquidity pool launch.

  • the wPOKT budget has committed to spending $100,000 out of its $150,000 ERA budget allocation to date, with additional reserves of $25,000 made to cover all Ethereum gas and infrastructure costs related to the actual launch of the bridge. A full breakdown of actual spending will be provided at the end of the project, and any excess funds will be returned to the DAO’s treasury.

  • here is the code for the wPOKT back-end system: GitHub - dan13ram/wpokt-validator - note that PNF will manage and control all of these “validators” on behalf of the DAO as part of the initial launch of this MVP.

  • here is the wPOKT smart contracts repo - GitHub - St4rgarden/wpokt at audit
    validators for testing purposes.

  • Feel free to explore and test it: https://wpokt-demo.vercel.app/

  • The demo app’s code is available here: GitHub - dan13ram/wpokt-monitor

  • Please note that the demo was built mainly to test the backend and the core bridging process.

    • Since SendWallet does not support POKT testnet, RaidGuild just added a sample pocket CLI command to the UI for sending POKT tokens to the vault and left it as such.

    • In the final mainnet bridge UI, Metamask and SendWallet (as well as any other suitable POKT wallets with a browser integration) will be supported for the best possible UX for all users.

Please explore the links, test the bridge, and share any feedback!

Update on 20 July 2023

  • Updated all timelines in line with the latest progress and delays
  • Added a new spec doc documenting the updates to the approach for the back-end (in particular), as well as the design and front-end. See here for reference
  • Added a new deliverable and spec doc for a wPOKT Uniswap LP staking/farming strategy. See here for reference

TLDR:

  • Timelines are pushed back by 3 weeks, meaning if everything goes according to plan with the audit, we can hit a late August launch. However, being conservative, by the end of September (ie end of Q3) is a very reasonable target even if we hit some more last-minute snags
  • We have moved away from using Copper on both Ethereum and Pocket due to a lack of a testnet environment, blockers on progress, and technical factors meaning that gas costs were an issue
    • Mints on Ethereum will be signed by M/N wpokt signer nodes (as per the specs), and end-users will also pay the gas required
    • Burns / Invalid Mints on Pocket Network will be signed by N/N wpokt signer nodes
    • All private keys used as part of the signer nodes for the bridge will be managed by Google secret manager, which has built-in redundancy with rotation policies to ensure that the keys are stored in multiple data centres so that they are safe even if one of them goes down, and deployed to the signer nodes securely
    • PNF will manage all the signers for this initial version, with the plan to open up and decentralise with each subsequent iteration
  • Raid Guild will complete the work for the wPOKT Uniswap LP staking strategy in parallel with the rest of the work
  • PNF will share a proposal for a wPOKT Uniswap LP liquidity strategy to the forum for consideration in the course of w/c 7 August (if not before)

wPOKT

We have held off on a formal update until now due to the desire to make sure we had firm timelines before getting anyone too excited. You can now start to get excited :slightly_smiling_face:

This project builds on our overarching objective at PNF to accelerate the DAO’s impact, which includes helping to steward the growth - and value - of the Pocket ecosystem.

More specifically, one of PNF’s stated Big Hairy Audacious Goals for Pocket is for POKT to have the institutional financial rails expected of a blue-chip token. The volatility and lack of market depth of POKT act as a genuine barrier to entry to new entrants to the ecosystem. And for Pocket’s economy to win, the lifeblood of the economy, POKT, should be as freely accessible as possible for new node runners, gateways, applications, and DAO contributors.

Purpose, objectives, and operating principles

We want to develop a “wrapped” version of POKT, “wPOKT,” that can represent the value of native POKT 1:1 and benefit from the smart contract features and tools available within the Ethereum ecosystem.

Our aim with wPOKT is twofold:

  1. Enable the interoperability of Pocket Network with best-in-class DeFi and DAO tooling and infrastructure
  2. Improve liquidity and access to POKT

Achieving these objectives has the potential to unlock financial legos, such as streaming payments, DAO budgeting, and other integrations that will help the DAO to scale and onboard new contributors. Additionally, wPOKT as a programmatic primitive can be the foundation for more sophisticated Pocket products in the future.

In building wPOKT, we are keen to adhere to the following principles:

  • Never let perfect be the enemy of good. This initial version of wPOKT is an MVP: it is more important to ship a working version of wPOKT and its accompanying bridge in the coming months than it is to ship a “perfect” - perhaps “trustless” - version in a year’s time.
  • Keep things simple and reduce all unnecessary overhead. The UX should be incredibly straightforward and easy to use as PNF doesn’t have the bandwidth to process refund requests and act as 24/7 customer support for wPOKT.
  • User safety is paramount. We must minimise the scope for user mistakes and never sacrifice safety in the desire to ship quickly.
  • We cannot slow down any other ecosystem priorities to deliver wPOKT. Consequently, wPOKT cannot include any features that would require a protocol upgrade prior to v1, eg to enable threshold multisig functionality for Pocket’s blockchain (which will be included in v1).

Implementation plan

Success metrics

The north star metric for this project is 2% depth (the amount that can be purchased/sold within 2% of the spot price). As of 19 June 2023, the amount that can be purchased within this range on the largest market for POKT(measured by 24h volume) is $1.9k (albeit the liquidity on Kucoin is much better with a 2% depth of $11k).

For wPOKT to be successful, it is necessary for people to easily be able to buy - and sell wPOKT - and then use that wPOKT as they need, including bridging it over to the Pocket Network blockchain to stake as a node runner, or directly as an application/gateway (post v1).

Technical specifications

Budget

This is an indicative “do not exceed” budget. Final numbers and costs are subject to change.

For clarity, any excess or unutilised funds from the Era Budget will be returned to the DAO Treasury at the end of the Era or at the close of wPOKT (whichever comes first), and any remaining funds from the Era allocation will be returned to the DAO treasury at the end of each cycle.

Deliverable Responsibility Projected cost ($)
Scope out project and deliver draft technical spec across design, front-end, smart contracts and back-end Raid Guild 6,400
Deliver technical build of wPOKT as against the agreed specifications, including all necessary design, front-end, smart contracts and back-end components Raid Guild 42,200
Legal advice and drafting of terms of service for wPOKT front-end Fox Williams (law firm) 11,400
Audit of wPOKT Audit firm 50,000
Infrastructure costs (gas costs to launch smart contracts on Ethereum, and additional costs for custodying wPOKT funds) PNF, Copper 25,000
TBC: Front-end to enable DAO sponsored liquidity provisioning for the wPOKT/ETH pair on Uniswap Raid Guild 15,000
wPOKT min liquidity (50/50 POKT and ETH) PNF and DAO 75,000

Operational budget = $150,000 (max)

Minimum liquidity budget (excluding additional DAO incentives) = $75,000 (max)

Stakeholders, roles and responsibilities

Stakeholder Role and Responsibilities
PNF Steward the project by setting the objectives, maintaining oversight over all contributors and ensuring that the project is delivered in the most efficient and safe manner.
Raid Guild Lead technical developer for the project. Build out and integrate together the design, front-end, smart contracts, and back-end.
Halborn Audit the final product from the Raid Guild team to uncover any bugs and opine on the overall safety and viability of the project.
DAO voters Approve the wPOKT budget of $150k included within the new ERA proposal once it goes to a vote, and approve any additional wPOKT liquidity incentives if it goes to a vote too
Community members Provide input and comment on the spec as it is released, and support the project once launched by using the bridge and/or providing liquidity to the wPOKT/ETH pair on Ethereum
PNF’s PR firm Connect PNF to the right contacts to ensure that wPOKT gets awareness with its target audience

Deliverables, stakeholders and timeline

Deliverable Stakeholder Timeline
Align on objectives and approach for the wPOKT project PNF By end of April 2023 - Done
Onboard technical lead to build wPOKT PNF By mid May 2023 - Done
Share technical deliverables and roadmap, along with budget for all technical work Raid Guild By end of May 2023 - Done
Provide visual design prototype Raid Guild By start of June 2023 - Done
Finalise legal advice and documentation connected with wPOKT, including terms of use PNF and law firm By end of June 2023 - Done
FRONT END: UI Components, SMART CONTRACT: wPokt Contract and Minter contract Raid Guild By 28 July 2023 - Done
BACK END: Mint Flow Raid Guild By 28 July 2023 - Done
Front-end, smart contracts and final full build of wPOKT LP staking system Raid Guild By 4 August 2023 - Done
Finalise liquidity strategy for wPOKT to present to the DAO PNF By 11 August 2023 - Done
Finalise marketing and PR plan for launch PNF and PR Firm By 11 August 2023 - Done
Finalise wPOKT audit Audit firm Due by end of August 2023 - Done
Integrate any changes following audit report Raid Guild By 8 September 2023 - Done
DAO approval of initial liquidity incentives for wPOKT PNF, DAO voters By end of August 2023 - Done
Launch wPOKT, the bridge, and any DAO-approved liquidity incentives PNF, Raid Guild, DAO Bridge to launch on Wednesday 20 September, Uniswap liquidity pool to launch on Monday 25th September, and DAO-sponsored incentives to commence on Thursday 28th September

Conclusion and next steps

We will use this thread to make continual updates as we achieve more milestones and more information and questions comes to light about the final approach to the relevant social, economic and technical components relating to the project.

We encourage all community members to join us in bringing this project to fruition, so please feel free to reach out or just comment if you feel you have a valuable contribution to make. We will also announce one or two Pocket Open Priorities (POPs) in relation to wPOKT in the coming weeks, so watch this space.

Thank you.

PNF

15 Likes

Thanks for the update @Dermot , great to see that wPOKT remains on track!

4 Likes

Thanks for the update.

3 Likes

It’s been a long time coming. Great to see this progress.

3 Likes

Amazing to see the work taking great leaps forward!

Can we know the auditing firm? @Dermot

5 Likes

Proposal: Could we possibly consider referring to it as simply POKT, rather than wPOKT?

Justification:

  1. The term “wrapped assets” does not automatically denote the same meaning as “bridged assets”. Wrapping of tokens can occur within the same chain. For instance, standard ERC-20 $POKT on Ethereum could be wrapped into an incentivized $wPOKT by a non-standard ERC-20, similar in nature to tPOKT.

  2. If we stick with the process where $POKT (mainnet) is wrapped into $wPOKT (ERC-20), this would imply another wrapping of the already wrapped asset when it’s bridged to other chains (Binance, Polygon, etc), resulting in $wwPOKT.

  3. It’s likely that user experience will be enhanced by maintaining a consistent token name ($POKT). Users would simply have to select from familiar chains, with the token name remaining constant. Furthermore, centralized exchanges (CEXs) would not have the added task of clarifying that $POKT can be deposited by sending $wPOKT on the ethereum chain.

  4. In my opinion, there isn’t any intrinsic benefit in assigning a “new name” to assets when they move outside of the mainnet. On the contrary, it could potentially confuse users (for example, how they could purchase POKT instead of wPOKT).

4 Likes

Could we integrate with https://twitter.com/axelarcore/status/1669382878101229568 to reach crosschain swaps. It seems to become the goto solution between many chains. Recently uniswap (pancakeswap, osmosis et al) jumped onboard.

1 Like

Hey @spenc

This is an interesting point. And it is true that more and more cryptoassets still use their original ticker on other chains. Stablecoins are an obvious one, but ETH - largely speaking - is too.

I’m keen to explore this further.

Our new Head of Marketing starts next week, and she should have some good insights into whether or not it helps from a marketing perspective to refer to “wPOKT” or “POKT” (but on a different chain).

4 Likes

We explored using Axelar as part of the original scoping exercise for wPOKT, as this was an option that Olshansky - amongst others - was particularly keen on. However, we ended up ruling out Axelar for this initial version of wPOKT for two main reasons:

  1. The v0 Pocket blockchain does not have the threshold multisig functionality required to work with Axelar, so we would need to divert some of the protocol team’s resources to ship a new protocol upgrade. This is a non-starter for us. Shipping v1 sooner is a much higher priority than shipping a more trustless bridge.

  2. Using Axelar would require additional custom development and testing, meaning a longer time to launch wPOKT. And I think we all want to experience the benefits of wPOKT sooner rather than later.

It’s a great question, though, and it’s a top priority for us to integrate with Axelar - or a similar solution - post the launch of v1. Having a more trustless bridge is also much more aligned with our overall strategic thesis of helping Pocket to become unstoppable across every dimension.

3 Likes

Just one thing to mention while I consider “launching POKT on Ethereum” slightly better terminology, I don’t mind using wPOKT from marketing perspective. What worries me is that this terminology got into the smart contracts, where we should imho prefer single standard ($POKT).

1 Like

Just wondering, have you considered using Starknet in order to reduce fees? That way you would be able to submit tx to Starknet L2 that’s significantly cheaper and you would not need to care about submitting batch tx to L1, while users would be able to mint their tokens (and actually pay lower gas fees).

There might be also some room for improvements in the smart contract - for example you can compress data by hashing rather than passing uncompressed input (that’s imo anti-pattern).

I’ve did some work related to token bridging in the past (and it was audited). If you would like I am happy to jump on the call and share some tips.

1 Like

We considered Polygon, Arbitrum, and Optimism, amongst the many EVM alternatives to Ethereum, but none came close to Ethereum when evaluated under the lens of the dual purposes driving this project:

Starknet has some interesting technology, but it doesn’t (yet) have the DAO/Defi infrastructure and/or liquidity we need for POKT right now.

We already have certain community members reviewing the code as it progresses, but it’s all available so if you are interested in reviewing the smart contract, we would love your input. See below:

3 Likes

I think it’s a little strong to call this a worry! Non-EVM tokens when represented in the EVM ecosystem - from wBTC all the way onwards - are typically prefaced by “wrapped” and the shorthand of “w” in their ticker. So this isn’t particularly unusual nomenclature.

In any case, we still have plenty of time to decide. And whatever decision that we make will be a thoughtful one.

4 Likes

I didn’t mean to launch token on Starknet, just to deploy mint controller on Starknet. For instance, if you want to mint tokens on Ethereum, you need to have centralised layer that will handle batching, gas fees and possible tx failures. With controller on Starknet, you can submit withdrawals as they occur and they will handle batch submission to L1.

If I understand it correctly the current wPOKT implementation mints tokens directly, which means the fee burden is on the controller and it adds complexity of capturing fees properly. It can be more efficient to move that burden on users, specially when you want to decentralise this flow (eventually).

For instance, when the user requests bridging POKT → Ethereum you can store the payload off chain (browser, centralised db, etc), while you only submit it’s hash to L1. From the controller perspective it means you only need to write bytes32 message on chain (very gas efficient). The cost of minting is then transferred to the user as he needs to provide uncompressed payload. This payload (address, amount, nonce) is then hashed again and if the hash is present on chain you can safely consume the payload which allows end users to mint tokens and cover the fees.

It’s basic cross chain messaging concept and it’s doable without Starknet - Starknet just removes the overhead of dealing with L1 directly. You can just deploy a controller contract on Starknet and the only thing it does is message forwarding to L1, so when your message is accepted on Starknet you can be sure it will be correctly delivered to L1, where it can be consumed by users.

Another reason why this might be a good choice is it might be easier to decentralise it. Right now, the controller can be operated let’s say by centralised key pair stored on cloud (HSM). In the future you can change this - implement something like Threshold BLS signatures into v1 or let pokt validators to verify proofs before L1 state can be updated.

Or you can actually deploy your own “starknet” on top of Starknet and thanks to recursive proofs you can efficiently transfer information that will be proved on L3 (PocketCairo) by POKT Validators through L2 to L1. It can work even vice versa, transferring burn information from L1 to L3, where again validators can verify such information and unwrap it on POKT chain.

The above are just ideas, it strongly depends on the direction how IBC will be implemented in v1. However, passing compressed (hashed) messages between Ethereum <> POKT seems to be slightly better option as it’s gas efficient and it’s simply more universal for messaging (doesn’t have to be limited to just mint/burn).

4 Likes

Sorry for the delay in getting back to you.

Very interesting points. And all will definitely be up for consideration as part of the next version of wPOKT, so I’ll reach out as soon as the planning phase for wPOKT v2 starts! IBC should be a massive help, and the general state of the art when it comes to bridging should also be much more advanced by the time that v1 launches too.

4 Likes

I’m just curious what the next version of wPOKT means? Will that be like another ERC-20 or is it more like upgradable controller (v1/v2/…)?

1 Like

Although the token itself isn’t upgradeable, everything is on the table, and we are open to a token migration in the future if that will deliver the most impact to the community. However, our priority for the next version of wPOKT is more about upgrading the back-end to be more decentralised by removing any reliance on any third party. For example, the spec for the wPOKT smart contract includes the following for access controls:

  • AccessControl Wallets:
    • DEFAULT_ADMIN_ROLE: granted to a Safe multisig controlled by POKT Foundation + POKT community members
    • MINTER_ROLE: granted to Minter contract which is owned by the Copper sharded wallet
    • PAUSER_ROLE: granted to POKT Foundation member

So you have them to hand, the technical specs are linked below:

Happy to chat in DMs if you have any further questions

3 Likes

Sharing this update to the main post for full awareness on changes to the spec, the updated timelines and what’s up next on the roadmap

5 Likes

Axelar is one option but it still requires bridge infrastructure. Another option could be designing the token specs/metadata to be compatible with layer zero protocol. Going that route might allow for the community to get an airdrop from onchain activity after they bridge or qualify the dev team to earn a grant for building things on layer zero protocol. I get that Eth has the big bucks but Arbitrum seems like a good compatible and cost friendly option to pursue for the v1 launch. We all took a hit with the decline in valuations no need to exacerbate the pain with eth gas fee volatility. Also there is a wpokt token already on eth and polygon what will happen to those holders? Would a migration to the new contract be the correct play for better user experience and retention?

3 Likes

It also requires an upgrade to the protocol to enable M-N threshold signature aggregation, which is why Axelar, along with other bridge options, will be part of the consideration for future iterations of wpokt.

This is a good point, but it’s important not to look at wPOKT as a monolith.

We are going with Ethereum first as it is where most of the liquidity is (Uniswap’s volume on Ethereum is c.4x what it is on Arbitrum) and where most of the DAO infrastructure we initially want to integrate with is too.

The next iteration will most likely be on Arbitrum and/or Polygon, as accessibility is a key consideration as you rightly point out.

I’m not sure I understand. Are you asking what will happen if we want to launch on Arbitrum in the future? If so, the bridge has been designed modularly to make it very easy to support bridging to other EVM chains. I’ll leave the exact implementation details to the technical experts. Still, as every wPOKT token is backed by 1 POKT token, there will be no need to upgrade the wPOKT token on Ethereum to integrate any new chain to the bridge dapp.

4 Likes