Spend Reactions
Last updated
Last updated
RARA, the Social Curation Protocol for NFTs. © 2020-2023 RARA Social Inc.
Once a Reaction NFT has been purchased, it can be used by spending it on a Taker NFT. This Taker NFT can be any ERC-721 or ERC-1155 compliant contract on Ethereum mainnet or the Polygon L2. By spending a reaction on a Taker NFT, the reaction will be burned from the owner’s wallet and an on-chain event will tag the target NFT as the destination of the spend. To spend a reaction, the owner would call “spendReaction()” in the ReactionVault Contract. The spender will specify the details about the target Taker NFT, which reaction to spend, how many to spend, and some additional information.
When the reaction spend takes place, the protocol will look up the Curator Liability that was set aside for these reactions at purchase time and determine how to allocate the funds.
If the transaction includes an optional referrer address passed into the “spendReaction()” function call, that address will be assigned a percentage of the Curator Liability. This is provided to incentivize other protocols and applications to incorporate the RARA protocol.
The remaining funds will be used to buy Curation Tokens correlated to the Taker NFT. These Curation Tokens will then be split amongst the Taker NFT Owner and the account that spent the reactions. The allocation percent is set protocol wide in the ParameterManager Contract.
The Curation Tokens purchased for the spender are sent back to their wallet address. The Curation Tokens purchased for the Taker are stored in the ReactionVault Contract until they are claimed by the Taker.
Potentially different types of Curator Vaults can be incorporated into the protocol. For example, a time based event could be used where reaction spends are only valid during a specific period. If the protocol would like to use Curator Vaults other than the default, they can be whitelisted in the ParameterManager Contract. Once whitelisted, the reaction spender can specify to use the different Curator Vault in the “spendReaction()” function call.
Additional data may want to be associated with the reaction spend. This could be comments, labels, search terms, or any other data that is not storable on blockchain. If this metadata would like to be included in the reaction spend, the spender can store this metadata in IPFS and then pass through the IPFS hash to be included in the spend event, to permanently associate this IPFS data with the spend event.
Unspecified optional parameters should be set to 0
or the 0x0
address.