Liquid Split

Liquid Split

Liquid Split diagram

Unlike standard Splits where ownership is manually controlled, Liquid Splits use NFTs to make ownership transferable. This allows each recipient to control their share of the Split themselves. This template uses an ERC-1155 NFT contract and a mutable Split. You can integrate Liquid Splits into your own NFT project (including adding your own artwork etc) by forking this repo (opens in a new tab).

⚠️

When adding this functionality to your contracts, if sum(percentAllocations) != 1e6 the Split will fail to update and funds will be stuck! Be careful when managing supply (including burns, rounding on odd numbers, etc). For this reason there is no burn function exposed in our implementation.

How It Works

  • When a Liquid Split is created, an ERC-1155 contract is deployed and 1,000 NFTs are minted to the initial recipients with each recipient receiving their share of the NFTs. The ERC-1155 contract is then set as the controller for a mutable Split. Funds pile up in the Liquid Split contract (which is the ERC-1155 contract) and whenever a balance is distributed the NFT contract updates the Split to match current NFT holders and immediately distributes the balance. This is done by calling updateAndDistribute (opens in a new tab).
  • NFTs should only be considered to represent funds that have not yet been received by the Liquid Split. Because recipients of a Liquid Split are updated at the time of a distribution, it is unsafe to assume that acquiring Liquid Split NFTs will entitle someone to any portion of the current balance. A seller could easily distribute the balance right before transferring you the shares, causing them to receive that portion of the balance.
  • We recommend setting the distribution incentive on Liquid Splits to be slightly higher (i.e., ~2-3% instead of ~1%). This is because distributions require more gas given the need to both update and distribute the Split.
  • The ERC-1155 standard was used since it allows batch transfers. This means that someone can transfer 1% of the Split (10 NFTs) in a single transaction instead of 10 separate ones (which would be required if using the ERC-721 standard).

Addresses

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