# Collection Royalties on Alto Market

{% hint style="warning" %}
Alto supports [ERC-2981](https://eips.ethereum.org/EIPS/eip-2981) and strongly recommends that NFT contracts incorporate this into their code upon deployment.&#x20;
{% endhint %}

Openzeppelin provides an easy reference royalty integration here: <https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/common/ERC2981.sol>

If your NFT collection does not support ERC2981, you can optional set royalties by creating an override and linking it to the Open Royalty registry, Alto has deployed the Manifold Royalty Registry **on Canto** at: 0x5829c7eAc45059bF33164D3E0B7B4Dd945f32782

*To easily deploy your own factory and link it to the registry please complete the following steps:*

## STEP 1: Create a new override using the Canto Block Explorer

<https://evm.explorer.canto.io/address/0x438a5fd647a47709B8F5AF991EA2e5963b7D6552/write-contract#address-tabs>&#x20;

{% hint style="warning" %}
Make sure to connect your wallet (Metamask) used to deploy your NFT.
{% endhint %}

<figure><img src="https://lh4.googleusercontent.com/P8XV0_dwI-hzKcL86rWU7enz5W8SEZTIBkm87Ka1ZkkVqYVX_wj7M1bzFyjRaCT5SqnesKym8mUMebRmVETljOdIdkwPacnJhiMiqq3nkcfNufj9WzcLYarMjRAh2NfwJSnj1Go_jjidiRtTuwI8Bxo" alt=""><figcaption></figcaption></figure>

Enter the royalty percentage basis points (bps), 100 bps = 1%. And the address which should receive the royalties. Keep in mind that royalties can be paid in any token on Canto or in CANTO. So the receiving address should be able to receive ERC20 tokens and CANTO.

Once you’re happy with the settings, deploy this by clicking “Write” and following the instructions in Metamask.

## STEP 2: After this transaction is confirmed by Canto validators you can attach this to the Royalty registry.&#x20;

## First you will need the address of the Override you just created, which can be found in the Logs section of the transaction in step 1.<br>

Now head over to the Royalty Registry and link the Override to your NFT contract:

<https://evm.explorer.canto.io/address/0x5829c7eAc45059bF33164D3E0B7B4Dd945f32782/write-contract#address-tabs>&#x20;

<figure><img src="https://lh4.googleusercontent.com/epVCQOoOj0Pd21ntYf5tdM8YY557fmBO1xPhzf8vKn5UAtk2i9td8fEIcBNSDhGOifynApPX-NymHibKYf4tiYM-0y9CNcPQ5zppqceAigULmC7Q0TphdvKE_lvvX8TkIywtxiKbMVuyBVvcrH7YLZY" alt=""><figcaption></figcaption></figure>

Enter the Address of your NFT contract, and then the address of the override created in Step 1. Confirm by clicking “Write” and follow the instructions in Metamask.

If you get an error message or difficulty estimating gas this is likely due to not using the wallet used to deploy the NFT or not having correct ownership of the NFT contract. Please contact Alto through their discord to link the contracts.

## STEP 3: After the transaction in Step 2 has finished you can check the royalties by checking the RoyaltyEngine at:

<https://evm.explorer.canto.io/address/0xc83ebAdD67e024e3B28468D6767A576eeb66e93B/read-contract#address-tabs>

<figure><img src="https://2109624415-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlE3xReON3eyN5E1aDBkj%2Fuploads%2FGvAbg6qtwoBkagXffKFb%2FScreen%20Shot%202023-01-31%20at%207.22.05%20PM.png?alt=media&#x26;token=1a989f6a-0ba6-4d44-b405-adba244abf5a" alt=""><figcaption></figcaption></figure>

Under 3. getRoyaltyView, enter the NFT contract address, any valid NFT ID (default 1) and an amount (check with at least 1000 to correct for rounding). Click “Query” ensure the below is correct.

<br>

## If for whatever reason the information is not correct, you can start again from step 1.

<br>


---

# 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://alto-market.gitbook.io/alto-market/technical-reference/collection-royalties-on-alto-market.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.
