Flaunch Docs
  • For Builders
  • For Creators
  • Changelog
  • Welcome Builders
  • Builder Fund
  • Token Managers
  • Get Started
  • Implementation
  • Manager Types
    • RevenueManager
    • AddressFeeSplitManager
  • Submit your App
  • References
    • SDK
    • API
    • Solidity Cookbook
    • Subgraph
      • Graph Explorer
      • Subgraph Query Examples
      • Indexing Swaps
  • Artificial Intelligence
    • Vibe Guide
    • AgentKit
    • MCP
  • Developer Resources
    • GitHub
    • Uniswap V4 Helpers
    • Contract Addresses
  • Audits
  • Bug Bounty
  • Network
    • Flaunch.gg
    • QuickIntel
  • Flaunchy
  • Nyko
  • Terms
    • Terms of Service
    • Privacy Policy
Powered by GitBook
On this page
  • Initialization
  • Deposit
  • Public Calls
  • Protected Calls
  • Who is using the RevenueManager?
  • Contract Addresses
  • ABI

Was this helpful?

Export as PDF
  1. Manager Types

RevenueManager

PreviousManager TypesNextAddressFeeSplitManager

Last updated 21 days ago

Was this helpful?

If you operate an external protocol, there are a number of benefits that can come from integrating with Flaunch.

  1. Create your own launchpad that gives you full control of the business model

  2. Integrate your protocol's functionality into Flaunch's whitelisted treasury actions to build TVL

  3. Build popular money games with the tokenized revenue streams and profit

  4. Builders can take up to 100% of all fees generated, and the remaining will go to your token creator and .

The Flaunch protocol is built in a way that directly rewards the token creator though, which won't benefit an external protocol. To alleviate this, we can use an escrow contract that will capture fees as a middleware and give more granular control over fee distribution in any way wanted.

To achieve this, we created the RevenueManager implementation contract that is simple to integrate. Before making your call to flaunch a token you will first need to deploy an implementation of the Treasury Manager and then initialize the RevenueManager like below.

Initialization

/**
 * Parameters passed during manager initialization.
 *
 * @member protocolRecipient The recipient of protocol fees
 * @member protocolFee The fee that the external protocol will take (2dp)
 */
struct InitializeParams {
    address payable protocolRecipient;
    uint protocolFee;
}

Deposit

No additional data required

Public Calls

balances(address _recipient) returns (uint)

Allows the caller to check the balance of their position. This will check all of the creator's tokens, and if the protocol fee recipient calls this then it will also show the amount available for them to claim.

claim() returns (uint)

Allows a caller to make a claim against their whole balance, without any additional {FlaunchToken} logic being passed in the parameters.

claim(FlaunchToken[] calldata _flaunchToken) returns (uint)

Allows a creator to make claims against the fee revenues they have earned. This returns the amount of ETH claimed during the call.

If the msg.sender does not match the creator of any of the passed FlaunchToken , then the entire tx will revert.

creator(address _flaunch, uint _tokenId) returns (address)

The address of the user allocated as the creator of the token

creatorTotalClaimed(address _creator) returns (uint)

The total amount of ETH that a creator address has claimed

deposit(FlaunchToken calldata _flaunchToken, address _creator, bytes calldata _data)

Deposits a FlaunchToken into the manager.

getProtocolFee(uint _amount) returns (uint)

Calculates the protocol fee that will be taken from the amount passed in.

managerOwner() returns (address)

The owner of the manager that can make protected function calls.

protocolFee() returns (uint)

The fee that the external protocol will take (2dp)

protocolRecipient() returns (address)

The recipient address of the protocol revenue split

protocolTotalClaimed() returns (uint)

The total amount of ETH that the protocol has claimed

tokenPoolId(address _flaunch, uint _tokenId) returns (uint)

Maps a FlaunchToken to a PoolId for simple lookups

tokens(address _creator) returns (FlaunchToken[] memory flaunchTokens)

Returns an array of all FlaunchToken data assigned to the creator.

tokenTotalClaimed(address _flaunch, uint _tokenId) returns (uint)

The total amount of ETH that has been claimed for a specific token

Protected Calls

Only the owner of the manager can make these calls

Allows a protocol owner to make a claim, without any additional {FlaunchToken} logic being passed in the parameters. This returns the amount of ETH claimed during the call.

rescue(FlaunchToken calldata _flaunchToken, address _recipient)

Rescues the ERC721, extracting it from the manager and transferring it to a recipient.

setCreator(FlaunchToken calldata _flaunchToken, address payable _creator)

Allows the end-owner creator of the ERC721 to be updated by the intermediary platform. This will change the recipient of fees that are earned from the token externally and can be used for external validation of permissioned calls.

setProtocolRecipient(address payable _protocolRecipient)

Allows the protocol recipient to be updated. This can allow a zero value that will bypass the protocol recipient taking a protocol fee during the claim.

transferManagerOwnership(address _newManagerOwner)

Transfers ownership of the contract to a new account (newOwner).

Who is using the RevenueManager?

We are currently working with a small number of launchpads to implement our RevenueManager. When they are released as public code repositories, we will share and document the implementations. Check back soon!

Contract Addresses

Chain
Implementation Address

Base

0x662A766aDBA1Ed135d92642dA3732283084f9950

Base Sepolia

0x1216c723853Dac0449C01D01D6e529d751D9c0c8

ABI

the community
18KB
RevenueManager.json