Royalties

Royalties are enforced on liquidity pools at the contract level. Royalties are automatically enabled for collections implementing the ERC2981 royalty standard.

Royalty Engine

The RoyaltyEngine contract is a fork of the Royalty Engine created by Manifold as part of the Royalty Registry initiative. This contract determines the provisional value of royalties due for a swap of given value and the address that should receive them. If a collection implements ERC2981, the RoyaltyEngine retrieves royalty information from the collection contract itself.

Royalty information returned from the engine is used in the _calculateRoyalties function on pair contracts, which is called internally by all swap methods, unless:

  • The royalty exceeds the sale price, in which case no royalty is applied.

  • A Setting is in place for the pool.

When a Setting is in place for a given pair, the _calculateRoyalties function will overwrite the royalty value returned by the RoyaltyEngine using the getFeeSplitBps view on the Setting contract.

Last updated