Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Omnipool LST (Sanctum style) #10

Open
drewstone opened this issue Aug 20, 2024 · 0 comments
Open

Omnipool LST (Sanctum style) #10

drewstone opened this issue Aug 20, 2024 · 0 comments

Comments

@drewstone
Copy link
Contributor

drewstone commented Aug 20, 2024

Overview

The goal with this spec is for defining a cross-chain omni pool design for LSTs. The pool will whitelist and aggregate LSTs and then we will upgrade our protocol-solidity / masp-protocol bridge to support this omni-pool token. The final design will resemble something like

image

Omni-pool token functionality.

Consider using ERC4262 to represent the webbXYZ token if it works, if not disregard.

  • DEPOSIT - Many tokens can mint shares of webbXYZ proportional to the value of the underlying XYZ holdings. Since these are LSTs, 1 LSTS might be worth more than 1 XYZ token. Therefore, depositing 1 XYZ LST will yield > 1 webbXYZ.
  • WITHDRAW - Burning webbXYZ will return any available token requested if available liquidity permits. We can consider supporting burning into multiple tokens.
  • PRICING - Pricing for tokens is in XYZ terms. There should be an oracle method (incorruptible on ideal chain, i.e. stETH on Ethereum) that tells us the underlying amount of tokens in the LST. https://learn.sanctum.so/docs/protocol/infinity/pricing-mechanism-of-infinity

Read up on Sanctum. The pool should support a swap functionality that allows users to swap between available liquidity on each side of the bridge. I don't know how we would immediately support cross-chain swap but possibly through intents.

Bridging mechanism

The goal is to take webbXYZ tokens (the omni-pool tokens) and bridge them across chains. We can improve the protocol-solidity/masp-protocol private bridge by integrating it with this type of token. The docs for the privacy bridges can be found in

The current bridge leverages a fully-connected graph topology (every anchor connected to each other). Instead we can explore a star-topology, where every anchor is connected to Tangle which hosts a RelayAnchor -- an anchor that maintains edges to all other chains. The flow would be as follows

  • Deposits of assets happen on each respective chain / anchor (even the RelayAnchor).
  • Transfers/Withdraws are all initiated on the RelayAnchor. If the transfer/withdraw verifies successfully on Tangle, then we dispatch a cross-chain message to the destination chain indicated in the transfer/withdrawal which will trigger the asset withdrawal or the data transfer (inclusion of the spent nullifier and UTXO hash in the destination merkle tree).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant