Protocol Workflows
Stakers Workflow
Staker is a TON holder who stakes their funds in the Pool to be used for validation. In other words, these are users who nominate a pool to exercise their validation rights.
Staker Deposit Optimistic
The Staker sends
deposit
message to PoolPool instantly requests Jetton Pool minter to mint new tokens for the Staker.
Jetton Pool Minter sends Poll Jettons to Stakers Jetton Wallet
Staker Withdrawal Optimistic
The Staker burns his Jetton Pool amount at any time during the validation round.
Skater's Jetton Wallet sends notification about burn to Pool.
The Pool immediately sends back to the Staker's wallet unstaked funds with a reward. If the pool has not have enough funds, Staker will get back Pool Jettons to his Jetton Wallet.
Staker Deposit Pessimistic
The Staker sent a deposit during the validation round to the pool address.
The Staker received a Payout NFT Item (deposit) in return, with the corresponding amount for staking.
At the end of the same round, the Pool sends
start_distribution
message, and the Staker's NFT is burned (on behalf of the collection contract).The Staker receives a Pool Jetton in exchange for TON staked at the beginning of the next validation round.
Staker Withdraw Pessimistic
The Staker sends a burn to their Pool Jetton Wallet during the current round.
For the burned Pool Jettons, the Pool contract sends a request to mint Payout NFT (withdrawal) in the Payouts Collection (withdrawal).
The Staker received Payout NFT (withdrawal).
At the end of the current round, the Pool sends
start_distribution
message, and the Staker's NFT is burned (on behalf of the contract of the Payouts Collection (Withdrawal)).The Staker receives all rewards for the last round and all preceding ones. The next round is launched without the participation of his funds.
Validator Workflows
Validator Request Loan
Before the start of elections, Validators can request a loan:
The Validator requests from the Controller the ability to take a loan, indicating the acceptable percentage and desired amount.
The Controller sends a request to the Pool with the corresponding parameters.
If the Pool has an available amount to loan at the specified percentage, the pool returns a confirmation to the controller, along with the issued loan.
After this, the Validator can send an application to participate in the elections through the Controller.
The Validator sends a request to the Controller to participate in the elections.
If the Controller has a borrowed amount, it is added and redirected to the elector in the application.
Validator Loan Repayment
After the Validation cycle ends, the Elector returns the stake along with the reward to the Controller.
The Controller carries out the loan repayment in a
loan_repayment
message to the Pool.When the last debt in the Pool is repaid, the round_update() is carried out.
Optional Workflow Types
Optimistic (instant) deposits/withdrawals vs Pessimistic (delayed) deposits/withdrawals
NFT bills vs Delayed Jettons Payouts
Liquidity pool Jetton DAO - governance voting
Governor Multisignature Wallet vs Governor DAO
Last updated