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

[TASK] LST withdrawal request w/NFT issuance #276

Open
monaiuu opened this issue Jun 17, 2024 · 0 comments
Open

[TASK] LST withdrawal request w/NFT issuance #276

monaiuu opened this issue Jun 17, 2024 · 0 comments
Assignees

Comments

@monaiuu
Copy link

monaiuu commented Jun 17, 2024

Description

Each withdrawal request is represented by an NFT. This NFT acts as a tokenized receipt for the withdrawal request and must be redeemed to finalize the withdrawal process.

Potential User Flow

  1. Initiating Unstaking and Receiving Unlock NFT
  • User Action: The user initiates an unstaking request through the interface.
  • Protocol Implementation: The protocol processes the unstaking request and issues an Unlock NFT to the user. This NFT represents the amount of staked assets to be withdrawn and includes details such as the maturity date when the assets can be claimed.
  1. Holding the Unlock NFT During the Unbonding Period
  • Unbonding Period: The user holds the Unlock NFT during the unbonding period, which is specific to the underlying blockchain network (e.g., 7 days for DOT on Polkadot). During this period, the assets are in transition and do not earn rewards.
  • Time-Risk Arbitrage: Market actors can purchase these Unlock NFTs at a discount based on the slippage fee charged. The discount decays linearly to zero as the maturity date approaches, allowing for time-risk arbitrage.
  1. Redemption of Unlock NFT
  • Maturity: Once the unbonding period is over, the Unlock NFT reaches maturity, and the underlying assets become available for withdrawal.
  • User Action: The user or a relayer redeems the Unlock NFT to claim the underlying staked assets. This involves providing the NFT to the protocol to finalize the withdrawal.
  1. Providing the NFT to Finalize Withdrawal
  • Redemption Process: The user navigates to the interface and selects the option to redeem the Unlock NFT.
  • The user provides the Unlock NFT by sending the NFT to a specific contract address designated by the protocol.
  • The protocol verifies the NFT, ensuring it has reached maturity and represents the correct amount of staked assets.
  • Execution: Upon successful verification, the protocol burns the Unlock NFT and releases the underlying staked assets to the user’s wallet.
  • The user receives the unstaked assets (e.g., DOT) in their wallet, completing the withdrawal process

Examples

Image
Image
( On Lido via Ledger, the NFT will change appearance when the ETH is ready to be claimed. )

@monaiuu monaiuu converted this from a draft issue Jun 17, 2024
@monaiuu monaiuu self-assigned this Jun 17, 2024
@monaiuu monaiuu moved this from Planning 🗺️ to Building 🏗️ in Webb Universe Jul 15, 2024
@monaiuu monaiuu moved this from Building 🏗️ to Completed ✅ in Webb Universe Aug 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Completed ✅
Development

No branches or pull requests

1 participant