📌ERC721

This contract is an advanced iteration of the standard ERC721. It stands out with its versatile minting options, including standard, pre-sale, and scheduled drops, catering to various launch strategies.

The contract also introduces airdrop capabilities for mass distribution and a whitelisting mechanism, essential for exclusive launches or pre-sale events.

Additionally, it incorporates social media link integration, crucial for community management. The contract's design includes features for pausing operations for security and managing token supply, such as burnable tokens and limits on tokens per wallet, making it a comprehensive solution for diverse NFT projects.

Methods

safeMint

Mints a new NFT to a specified address.

function safeMint(address to, string memory uri) public { }

Parameters

Name
Type
Description

to

address

The address to mint NFT to.

uri

string

URI for the NFT's metadata.

updateUri

Updates the URI for a specific token.

function updateUri(string memory _newUri, uint tokenId) public { }

Parameters

Name
Type
Description

_newUri

string

New URI to be set for the token.

tokenId

uint

ID of the token to update.

setPresaleTime

Sets the time for pre-sale minting.

function setPresaleTime(uint256 _preSaleTime) external { }

Parameters

Name
Type
Description

_preSaleTime

uint256

The timestamp for when the pre-sale starts.

preSaleMint

Allows minting during the pre-sale period.

 function preSaleMint(string memory uri) external { }

Parameters

Name
Type
Description

uri

string

URI for the NFT's metadata.

perWalletPreSaleMint

Allows minting during pre-sale with per-wallet limits.

function perWalletPreSaleMint(string memory uri) external { }

Parameters

Name
Type
Description

uri

string

URI for the NFT's metadata.

setScheduledDropMintTime

Sets the start and end time for scheduled drop mints.

function setScheduleDropMintTime( uint256 _startDropTime, uint _endDropTime ) external { }

Parameters

Name
Type
Description

_startDropTime

uint256

Start time for the drop mint.

_endDropTime

uint256

End time for the drop mint.

scheduledDropMint

Allows minting during a scheduled drop.

function scheduledDropMint(string memory uri) external { }

Parameters

Name
Type
Description

uri

string

URI for the NFT's metadata.

airdropNFTs

Distributes NFTs to multiple addresses.

function airdropNFTs(address[] memory recipients, string[] memory uris) external onlyOwner { }

Parameters

Name
Type
Description

recipients

address[]

Array of recipient addresses.

uris

string[]

Array of URIs for each recipient's NFT.

setTwitterProfile

Sets the Twitter profile link for the contract.

 function setTwitterProfile(string memory _twitterProfile) external { }

Parameters

Name
Type
Description

_twitterProfile

string

URL of the Twitter profile.

setTelegramChannel

Sets the Telegram channel link for the contract.

function setTelegramChannel(string memory _telegramChannel) external { }

Parameters

Name
Type
Description

_telegramChannel

string

URL of the Telegram channel.

setWebsiteURL

Sets the website URL for the contract.

function setWebsiteURL(string memory _websiteURL) external onlyOwner { }

Parameters

Name
Type
Description

_websiteURL

string

URL of the website.

_burn

Burns a token and adjusts the total supply.

function _burn(uint256 tokenId) internal { }

Parameters

Name
Type
Description

tokenId

uint256

ID of the token to be burned.

tokenURI

Retrieves the URI of a specific token.

 function tokenURI(uint256 tokenId) public view { }

Parameters

Name
Type
Description

tokenId

uint256

ID of the token to retrieve URI for.

Returns

Name
Type
Description

URI

string

URI of the specified token.

pause

Pauses all token transfers. This can be used in case of an emergency to prevent any further transfers.

function pause() external onlyOwner whenNotPaused { }

unpause

Unpauses the contract, re-enabling token transfers.

 function unpause() external onlyOwner { }

addToWhitelist

Adds addresses to the whitelist, allowing them to participate in activities like pre-sale minting.

function addToWhitelist(address[] memory accounts) external onlyOwner { }

Parameters

Name
Type
Description

accounts

address[]

Array of addresses to add to the whitelist.

removeFromWhitelist

Removes addresses from the whitelist.

function removeFromWhitelist(address[] memory accounts) external onlyOwner { }

Parameters

Name
Type
Description

accounts

address[]

Array of addresses to remove from the whitelist.

isWhitelisted

Checks if an address is on the whitelist.

function whitelistMint(string calldata uri) external { }

Parameters

Name
Type
Description

account

address

The address to check for whitelist status.

Returns

Name
Type
Description

whitelisted

bool

Returns true if the address is whitelisted, false otherwise.

Last updated