AetheriaNFT.sol

Quick Links

VIEW CONTRACT ON GITHUB

The AetheriaNFT.sol contract is a limited-edition ERC721 collection that represents the highest level of commitment to the AetherCycle ecosystem. With a fixed maximum supply of only 500, these NFTs are designed for pure utility and status, granting holders access to the exclusive AECStakingNFT reward pool. All proceeds from the minting process are sent directly to the PerpetualEngine as protocol revenue.

Inherits from: ERC721, ReentrancyGuard


Key State Variables

Variable
Type
Description

MAX_SUPPLY

uint256

The immutable maximum supply of NFTs, fixed at 500.

MINT_PRICE

uint256

The fixed price to mint one NFT, set at 1,000,000 AEC.

aecToken

IERC20

The address of the AEC token used for payment.

perpetualEngine

address

The address of the PerpetualEngine which receives all minting fees.

totalMinted

uint256

The current number of NFTs that have been minted.

mintingActive

bool

A flag indicating if minting is still possible. Becomes false when totalMinted reaches MAX_SUPPLY.

mintTimestamp

mapping(uint256 => uint256)

Returns the timestamp of when a specific tokenId was minted.

originalMinter

mapping(uint256 => address)

Returns the original address that minted a specific tokenId.

Write Functions

User-Facing Functions

  • mint(): Mints a single Aetheria NFT to the caller. Requires the caller to have approved the contract to spend 1,000,000 AEC. Reverts if the max supply has been reached.

  • mintBatch(uint256 quantity): Mints multiple NFTs in a single transaction for gas efficiency. The quantity must be between 1 and 10. Requires approval for MINT_PRICE * quantity AEC.

  • transferFrom, safeTransferFrom, approve, setApprovalForAll: Standard ERC721 functions for transferring and managing ownership and approvals.


View Functions

Metadata and Philosophy

  • tokenURI(uint256 tokenId): Intentionally returns an empty string. This is a core feature of the NFT's philosophy: its value is in its utility, not its image.

  • manifesto(): A view function that returns the philosophical statement of the Aetheria NFT collection.

Analytics & Stats

  • getTokenInfo(uint256 tokenId): Returns a detailed struct for a specific NFT, including its current owner, original minter, mint time, age, and whether the current owner is the original minter.

  • getMintStats(): Provides an overview of the minting progress, including the number of NFTs minted, remaining supply, whether minting is still active, and the total AEC collected so far.

  • tokensOfOwner(address owner): Returns an array of tokenIds owned by a specific address.

  • exists(uint256 tokenId): Returns true if a specific tokenId has been minted.


Events

  • AetheriaMinted(address indexed minter, uint256 indexed tokenId, uint256 timestamp, uint256 blockNumber, uint256 totalSupply): Emitted each time a new NFT is successfully minted, providing comprehensive details about the mint event.

  • MintingCompleted(uint256 finalSupply, uint256 timestamp): Emitted once when the 500th NFT is minted, signaling the permanent end of the minting phase.

  • AetheriaTransferred(address indexed from, address indexed to, uint256 indexed tokenId, uint256 timestamp): Emitted on every transfer, including mints (where from is the zero address).

Last updated