# Royalties

Royalties are enforced on liquidity pools at the contract level. Royalties are automatically enabled for collections implementing the [ERC2981 royalty standard](https://eips.ethereum.org/EIPS/eip-2981).

## Royalty Engine

The `RoyaltyEngine` contract is a fork of the [Royalty Engine](https://github.com/manifoldxyz/royalty-registry-solidity/blob/main/contracts/RoyaltyEngineV1.sol) 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sanko.xyz/sanko-mainnet/sudoswap/sudoswap-overview/royalties.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
