Flow of funds

There are three steps by which funds flow through the system to end recipients.

Flow of funds

Receiving

ETH and ERC20 tokens can be sent directly to any of the contracts simply by using the contract's address. You can paste this address into any third-party platform or contract, including exchanges and others with hard gas limits. Funds received by a contract will be stored as a balance until a distribution occurs. You can learn more about sending funds to a contract here and technical details are here.

Distributing

When a distribution occurs, funds sitting in the contract's balance will be allocated to each recipient's account in the protocol according to the rules of the contract. For example, when a Split is distributed the funds are allocated according to pre-defined percentages, whereas when a Waterfall is distributed funds are allocated sequentially according to the payout schedule.

Instructions for distributing balances using the app are here, however, most people won't need to worry about this step since any contract with a bounty will eventually be distributed automatically by a bot or arbitrageur.

Why is this step necessary?

Withdrawing

Once a contract's balance has been distributed, funds are ready to be withdrawn to any of the recipients' wallets. Since funds pile up in one place, withdrawing transfers all the funds across all the contracts for a given recipient. This saves people from having to initiate separate withdrawals for each contract they earn from. Since anyone can withdraw on behalf of any recipient (instructions here), recipients can be any account, smart contract, or exchange address.

Why is this step necessary?


Footnotes

  1. Smart contract best practices (opens in a new tab)

  2. Pull over push (opens in a new tab)