Waterfall

Waterfall diagram

Waterfall acts as a debt instrument by letting you specify the order in which distributions occur. It's useful when you want to pay one recipient a specific amount before paying another recipient. Just like a Split, a Waterfall is a payable smart contract that is composable on both inflow and outflow.

How It Works

  • Each Waterfall is a payable smart contract with two or more tranches. Each tranche has a recipient (any payable address) and a threshold (the max number of tokens it will receive). The final tranche has no threshold and will always receive all residual tokens.
  • ETH and ERC20s sent to a Waterfall are stored in the contract as a balance. When the balance is distributed, each tranche sends funds to the recipient only after the preceding trance has been filled. This repeats until the all tranches have been filled, at which point all residual funds are sent to the final tranche recipient.
  • The Waterfall is an immutable contract—once it's been created, it cannot be changed. Funds flow unidirectionally and tranches do not reset, meaning the only way to "restart" the sequence is to create a new Waterfall.
  • Any non-permitted tokens sent to the Waterfall may be recovered to any of the tranche recipients.
  • This contract was not designed for a large number of tranches and shouldn't be used with more than 1,000.

Addresses

Ethereum - 1
Optimism – 10
BSC – 56
Gnosis – 100
Polygon – 137
Fantom – 250
Base – 8453
Arbitrum – 42161
Avalanche – 43114
Zora – 7777777
Aurora – 1313161554