> For the complete documentation index, see [llms.txt](https://contract-wizard.gitbook.io/contract-wizard/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://contract-wizard.gitbook.io/contract-wizard/create/smart-contracts/the-code/721j-code/feature-functions.md).

# Feature Functions

There are various features in the ERC721J contract. Here are the functions related to each feature.

### Mint Price Functions

* **mintPrice** - From [IERC721J.](/contract-wizard/create/smart-contracts/interface-contracts/ierc721j.sol.md)
* **tokenMintPrice** - From [IERC721JFull.](/contract-wizard/create/smart-contracts/interface-contracts/ierc721jfull.sol.md)
* ***setMintPrice*** - Sets the mint price in ETH.
* ***setTokenMintPrice*** - Sets the mint price in an ERC20 token. Triggers the ***TokenPriceSet*** event.

### Song Supply Functions

* ***setMaxEditions*** - Sets the max supply for a song. Triggers the ***NewMax*** event.
* **songSupply** - From [IERC721J.](/contract-wizard/create/smart-contracts/interface-contracts/ierc721j.sol.md)
* **maxSongSupply** - From [IERC721J.](/contract-wizard/create/smart-contracts/interface-contracts/ierc721j.sol.md)

### Staking Functions

* **publicMint** - From [IERC721JFull.](/contract-wizard/create/smart-contracts/interface-contracts/ierc721jfull.sol.md)
* ***togglePublicMint*** - Toggles public minting on a token id. Also known as staking. Triggers the ***TogglePublic*** event.
* ***togglePublicMints*** - Toggles public on more than one token id. For staking multiple songs. Triggers the ***TogglePublic*** event.

### Recycle Functions

* ***recycleEnabled*** - Returns whether or not recycling is enabled for the collection
* ***toggleRecycleMint*** - Toggles recycling mode on/off

### Split Contract Functions

* ***splits*** - Returns the split address for the song id
* ***setSplit*** - Sets the split address for the song id. Triggers the ***NewSplit*** event.

### Rarity Multiplier Functions

* **rarityMultiplier** - From [IERC721JFull.](/contract-wizard/create/smart-contracts/interface-contracts/ierc721jfull.sol.md)
* ***setRarityMultiplier*** - Sets the % rarity multiplier for a rarity. This lets you have different rarities be different mint prices relative to the normal price. Triggers the ***NewMultiplier*** event.

### Royalty Functions

* **royaltyInfo** - From [IERC2981.](https://contract-wizard.gitbook.io/contract-wizard/create/smart-contracts/the-code/721j-code/pages/w3oYNs6KcAnNIlIlA3aj#ierc2981.sol)
* ***royaltyBPS*** - Returns the basis points for royalties to be used in royaltyInfo.
* ***setRoyalty*** - Sets the royalty basis points.
