<100 subscribers
<100 subscribers
Share Dialog
Share Dialog
Contract Secured Revenue (CSR) is when a portion of the transaction fees for interacting with a contract are sent to the contract’s owner. It’s a neat mechanism for implicit monetization of contracts/public goods that takes advantage of the fact that users are relatively price insensitive of gas.
Although it’s been around with Evmos and Near, Canto’s deployment of CSR has sparked discussions around what this could mean for dapps.
Taking a step back, taking the native gas token as a fee has been underexplored.
Usually dapps will try to collect fees in other manners, mainly reducing the output number of tokens, or taking a cut of the input, or taking nothing at all. This means that defi dapps can have much easier time accruing value than NFTs, which require social consensus around royalty enforcement – which isn’t always a given.
However, as Dan Elitzer points out CSR can easily be circumvented with applications that fork and kick back the rebate back to the users.
It’s nontrivial to fork certain dapps - stickier dapps like games, NFTs, can rake in revenue, but an orderbook, or a public utility might not be able to.
This is not to mention that the kickback is globally fixed at 20%. This potentially results in adverse incentives - mainly excessive gas usage in order to capture a higher fee amount.
The real kicker is that the rebate isn’t all that much given how low the transaction costs are on Canto.
https://twitter.com/wilburforce_/status/1618626167573184513
There is work being done to increase Canto gas costs to capture more of the consumer surplus, it’s unclear whether this is enough to make the revenues meaningful for Slingshot, let alone the other dapps which aren’t as popular.
In my view, it’s better for dapps to explicitly set their own fees. Dapps that are more sticky can set their fees higher, and public goods can set their fees low or even 0 – they can find an equilibria of fees and value creation that works for them.
Games are the best use case for this accrual mechanism. They have a low average value per transaction, but are really sticky and can generate many transactions.
While this combination makes games better suited for app-chains, for games that either need to plug into the crypto ecosystem more broadly (e.g. Aavegotchi), or don’t have the power to bring users to another chain, CSR works well.
Sunflower Land on Polygon PoS is a great example of this. While users play the game offchain, they sync their data onchain on an occasional basis, similar to a rollup. While they sync, they pay a fixed 0.9 Matic (~10 cent) fee on top of Polygon gas fees. This small fee has resulted in hundreds of thousands in revenue for the team over the past year. An interesting side effect of this is that while Sunflower Land has a token (SFL), the team is mostly supported by this fee revenue– instead of token sales, like many other games have done.
This is in stark contrast to a year before, when Sunflower game was completely on-chain, both taking down Polygon, and surrendering all this fee revenue to Matic tokenholders versus accruing value to the team.
There’s more exploration that can be done around incentives with CSR, especially around dynamic pricing of CSR:
a hot NFT mint can capture the demand by heavily weighting the current gasPrice
a dex can capture some of the MEV created by backrunning and redistribute it to LPs
Since the contracts runs a balance of ETH, it opens up interesting possibilities around rewarding certain actions in addition to fees.
On an orderbook, cranking, or the process of matching sells and buys, shouldn’t pay the same expense as a normal limit order, and if anything can be compensated for doing so.
An transferFrom action on an NFT could be exempt from paying a tax if it also pays a royalty fee, creating a more solid way of enforcing royalties
Update vault state for harvesting rewards is subsidized by providing a portion of the rewards to the caller, but could instead be paid with ETH paid by depositors who’ve deposited in.
One major caveat on all this is that it bricks existing integrations, and dealing with raw ETH is never fun thanks to reentrancy.
It is workable – whether it be via changes to the EVM/Ethermint (the way that CSR is implemented) changing the reward token, or simply better mechanism design.
In sum, there’s a lot of interesting design space that user fees creates that doesn’t necessitate a new chain, nor a new token. This can take the shape of shifting value of MEV from the protocol to the dapp, but more interestingly extracting more consumer surplus from users.
Monetizing open source has always been a difficult issue, but CSR isn’t the end of this exploration.
See the gist below for some a Solidity mixin I wrote, as a simple version of the above.
https://gist.github.com/Wyxuan1/774413eb1f08837036cc58a963edd2a1
Contract Secured Revenue (CSR) is when a portion of the transaction fees for interacting with a contract are sent to the contract’s owner. It’s a neat mechanism for implicit monetization of contracts/public goods that takes advantage of the fact that users are relatively price insensitive of gas.
Although it’s been around with Evmos and Near, Canto’s deployment of CSR has sparked discussions around what this could mean for dapps.
Taking a step back, taking the native gas token as a fee has been underexplored.
Usually dapps will try to collect fees in other manners, mainly reducing the output number of tokens, or taking a cut of the input, or taking nothing at all. This means that defi dapps can have much easier time accruing value than NFTs, which require social consensus around royalty enforcement – which isn’t always a given.
However, as Dan Elitzer points out CSR can easily be circumvented with applications that fork and kick back the rebate back to the users.
It’s nontrivial to fork certain dapps - stickier dapps like games, NFTs, can rake in revenue, but an orderbook, or a public utility might not be able to.
This is not to mention that the kickback is globally fixed at 20%. This potentially results in adverse incentives - mainly excessive gas usage in order to capture a higher fee amount.
The real kicker is that the rebate isn’t all that much given how low the transaction costs are on Canto.
https://twitter.com/wilburforce_/status/1618626167573184513
There is work being done to increase Canto gas costs to capture more of the consumer surplus, it’s unclear whether this is enough to make the revenues meaningful for Slingshot, let alone the other dapps which aren’t as popular.
In my view, it’s better for dapps to explicitly set their own fees. Dapps that are more sticky can set their fees higher, and public goods can set their fees low or even 0 – they can find an equilibria of fees and value creation that works for them.
Games are the best use case for this accrual mechanism. They have a low average value per transaction, but are really sticky and can generate many transactions.
While this combination makes games better suited for app-chains, for games that either need to plug into the crypto ecosystem more broadly (e.g. Aavegotchi), or don’t have the power to bring users to another chain, CSR works well.
Sunflower Land on Polygon PoS is a great example of this. While users play the game offchain, they sync their data onchain on an occasional basis, similar to a rollup. While they sync, they pay a fixed 0.9 Matic (~10 cent) fee on top of Polygon gas fees. This small fee has resulted in hundreds of thousands in revenue for the team over the past year. An interesting side effect of this is that while Sunflower Land has a token (SFL), the team is mostly supported by this fee revenue– instead of token sales, like many other games have done.
This is in stark contrast to a year before, when Sunflower game was completely on-chain, both taking down Polygon, and surrendering all this fee revenue to Matic tokenholders versus accruing value to the team.
There’s more exploration that can be done around incentives with CSR, especially around dynamic pricing of CSR:
a hot NFT mint can capture the demand by heavily weighting the current gasPrice
a dex can capture some of the MEV created by backrunning and redistribute it to LPs
Since the contracts runs a balance of ETH, it opens up interesting possibilities around rewarding certain actions in addition to fees.
On an orderbook, cranking, or the process of matching sells and buys, shouldn’t pay the same expense as a normal limit order, and if anything can be compensated for doing so.
An transferFrom action on an NFT could be exempt from paying a tax if it also pays a royalty fee, creating a more solid way of enforcing royalties
Update vault state for harvesting rewards is subsidized by providing a portion of the rewards to the caller, but could instead be paid with ETH paid by depositors who’ve deposited in.
One major caveat on all this is that it bricks existing integrations, and dealing with raw ETH is never fun thanks to reentrancy.
It is workable – whether it be via changes to the EVM/Ethermint (the way that CSR is implemented) changing the reward token, or simply better mechanism design.
In sum, there’s a lot of interesting design space that user fees creates that doesn’t necessitate a new chain, nor a new token. This can take the shape of shifting value of MEV from the protocol to the dapp, but more interestingly extracting more consumer surplus from users.
Monetizing open source has always been a difficult issue, but CSR isn’t the end of this exploration.
See the gist below for some a Solidity mixin I wrote, as a simple version of the above.
https://gist.github.com/Wyxuan1/774413eb1f08837036cc58a963edd2a1


No comments yet