1. Identify Your Type of Revenue Contract
While most contracts are compatible with the Spigot, not all revenue streams are created equal, some are more secure, composable, and trustless than others. Different protocols have different logic and architecture around governance and the flow of assets internally which affect how you setup your Spigot and lenders evaluate your cash flows. We’ll break down the different types of revenue The 3 main criteria for an onchain revenue
#1 - Programmatic, Trustless Smart Contracts
- Fees taken from users programmatically by contract
- Fees earned are controlled by contract (doesnt necessarily have to be stored inside the contract)
- No governance or only one governance address
- Complete control of smart contract can be transferred to the Spigot
- Smart contracts are immutable and non-upgradable
- Only the Spigot can change any aspect of revenue from who claims revenue to amount of fees paid by users
- Complete assurance that any and all ongoing revenue will flow to Spigot
#2 - Trusted Smart Contracts
- Fees taken from users programmatically by contract
- Fees earned are controlled by contract
- One or more governance addresses controlling contract
- May have multiple hierarchical roles.
- Ability to claim revenue but not complete control can be given to Spigot.
- Someone can change/remove the Spigots share of revenue or ability to claim.
- Some to complete assurances that any and all ongoing revenue will flow to Spigot depending on the contract and control structure.
#3 - Invoicing or Receivables
- No smart contract generating fees, direct token transfers from clients to multisig/EOA
- You could transfer a Superfluid stream NFT or similar to your Spigot but streams can be canceled or never fully paid so at best its a Trusted Smart Contract setup.
- No assurances that all ongoing revenue will flow to Spigot.