Fuul at a high level

Program Setup

Setting up Fuul is a straightforward process that involves defining the following parameters:

  • Triggers The name of the function call or event that will trigger an action, the smart contract address, and the hosting blockchain. Projects can also set up custom events triggered through the Fuul SDK. Eg: calling the swap function in 0x...123 on Ethereum mainnet.

  • Conversion Event Rule The rule (criteria of triggers) that will be considered a conversion event. Eg: depositing liquidity AND NOT transferring the LP token for 30 days.

  • Commission or payouts to be paid to partners and end users Commissions can be set up as a percentage of the transaction value or a fixed amount. Eg: for every deposit liquidity, the referrer will get 10 USDC and the end user will get 5 USDC.

  • Budgets Projects will deposit their desired budget in their own FuulProject smart contract (deployed from the FuulFactory contract). This enables them to give trust to partners that they will get paid in case of conversion.

Partners opt-in

Once the program is created, projects share the program link with their content partners, where they can create their own unique links.

Finally, content partners can now use these links in their content to start referring users to the selected project.

When users click on a partner's link, they are redirected to the project's app. Remember that the SDK will need to be integrated for this to work.

Transaction Validators

Fuul's network of smart contract listeners is continuously scraping the blockchain looking for transactions with these conditions:

  1. Approved Transactions: transactions that have already been settled on-chain.

  2. Transactions generated by users influenced by content partners: transactions originated by wallet addresses for which we have attribution data (have clicked on partner links within the campaign attribution window).

  3. Transactions that have triggered an action and resulted in a conversion event: transactions that have triggered the event or function that was defined and that the conversion rules were followed.

To the extent that transactions meet the three conditions above, then the attributors are able to:

  1. Attribute the transaction to the content partner/s who referred the transaction (given the attribution model).

  2. Update the corresponding balances for the project, content partner/s, and end-user making rewards available for them to claim from the project's Smart Contract.

Projects can also send custom offchain events through the web SDK (from the fronted) or the API (from the backend) to be used as triggers.

Last updated