Fee Sharing
BlockSpot Sequencer Fee Sharing
BlockSpot’s innovative Sequencer Fee Sharing (SFS) mechanism is a groundbreaking addition to the realm of roll-ups. It creates an economic model where developers are not just participants but beneficiaries of the network’s success. Through the SFS module, developers can register their smart contracts and be entitled to a share of BlockSpot's sequencer revenue, proportional to the transaction fees generated by their deployed contracts.
Overview
Developers keen on monetizing their contributions can register their contracts within the BlockSpot Fee Sharing Contract—inspired by the precedent set by Canto's Turnstile.sol. This contract is accessible on the BlockSpot testnet at a designated address. A segment of the transaction fees from all interactions involving their smart contract will be earmarked and collected in the Fee Sharing Contract.
Upon registration, a unique NFT is issued, symbolizing the claim to the accrued fees designated for the developer or the specified recipient. This NFT is not just a token but a transferrable asset, enabling claims on fees accumulated from various contracts.
Offchain Calculation and Distribution
An offchain component is tasked with the meticulous calculation of each smart contract’s share of fees, ensuring precise and fair distribution. It also manages the disbursement of fees to the registered smart contracts in the SFS contract. It's important to note that there may be a lockup period for the withdrawal of distributed funds, potentially up to two weeks, to ensure network stability and security.
Registering a Smart Contract for Fee Earnings
To partake in the revenue sharing, the BlockSpot Fee Sharing Contract provides a register
function. Developers or contract owners can call this function to issue a new NFT, which is then assigned to the recipient address. The function signature for this operation is register(address _recipient)
, and it triggers a Register
event that logs the registration.
Here's an example command, assuming the smart contract is designed with a register function:
Enrolling Contracts with an Existing Fee Sharing NFT
If a developer wishes to associate additional smart contracts with an existing fee-sharing NFT, the assign
function is available. The function signature is assign(uint256 _tokenId)
, and it must also be invoked directly from the smart contract in question.
Claiming Earned Fees
The accumulated fees can be accessed through the withdraw
function. The rightful NFT holder can call this function to retrieve the earned fees. The function signature for withdrawal is withdraw(uint256 _tokenId, address payable _recipient, uint256 _amount)
.
Here’s a sample command for withdrawal:
Last updated