Liquidity Provider Journey
High-level process flow from the point of view of a Liquidity Provider (Buyer)
1. Setup & prerequisites
Registering wallets
Buyers must register the Ethereum wallets intended to receive withdrawals from the validator marketplace smart contracts (see section 4 below). Each linked wallet is assigned a unique identifier by the buyer. These IDs are used when submitting quotes in response to RFQs to specify, upon the purchase, the desired destination for validator balances. For detailed instructions on wallet registration, please refer to the NORTHSTAKE API documentation.
Subscribing to webhooks
Buyers must subscribe to the necessary webhooks to receive relevant real-time updates and notifications. Detailed information about available webhooks and subscription instructions can be found here.
2. Receiving RFQs from depositors
Whenever a depositor creates an RFQ available for bidding, the RFQAvailable webhook sends the following information to buyers:
- RFQ ID: Unique RFQ Reference.
- Validator(s): the set of validators for sale. For each validator, the following parameters are shown:
- Validator Index: Unique validator identifier.
- Balance: Current validator balance.
- Estimated Exit time: An estimate of each validator's full withdrawal.
- Total balance: The total balance of the set of validators for sale
- All validators estimated exit time: An estimate of when all validators will be fully withdrawn.
3. Submitting a quote
Buyers can submit quotes in response to specific RFQs via submit a quote. Each quote has to include:
- RFQ ID: Unique identifier of the targeted RFQ.
- Amount: Bid amount for the validators, denominated in ETH.
- Wallet ID: Identifier of the registered wallet designated to receive the validator balance.
When submitting quotes, buyers must submit wallet IDs, NOT wallet addresses.
4. Settlement
Upon a depositor's acceptance of a quote, the liquidity provider (LP) will receive a notification via the RFQBidAccepted webhook containing:
- RFQ ID: Unique identifier of the RFQ.
- Quote ID: Unique identifier of the accepted quote.
- Amount: Bid amount denominated in ETH.
- Timestamp.
- Escrow Address: Address where the LP has to transfer ETH.
As the first step to settle the trade, buyers have to transfer the amount of ETH specified in the bid to the escrow wallet, using the wallet chosen when submitting the quote in step #2. "Submit a quote".
Multiple transactions can be sent to Escrow.
Once funds are in escrow, sellers will be prompted to accept an exit proposal, initiating the full withdrawal of the sold validators.
After the depositor completes the exit proposal, the LP will receive a notification via the RFQValidatorWithdrawalChange webhook which contains:
- Timestamp.
- Transaction hash: the transaction hash of the contract call.
The LPcan verify the withdrawal of the validator and the beneficiary details by querying the smart contract on Etherscan.
5. Validator withdrawal
After the validator balance is withdrawn from the Beacon Chain and transferred to the smart contract, the RFQValidatorExited webhook ill notify the LP with:
- Timestamp: Time of full withdrawal.
- Validator Index.
The LPcan now call the ()claimWithdrawals smart contract method to receive the funds to the designated linked wallet.
Updated 9 days ago