- A curatorless NFT collection.
A non-upgradable ERC-721 collection with an on-chain baseMetadataURI pointing to IPFS. Built with Foundry.
Features:
- ERC-721 with immutable
baseMetadataURIset at deploy time - Limited supply (1024 maximum)
- Fixed mint fee
- Whitelist only
| 0 | 1 | 2 | 3 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| 4 | 5 | 6 | 7 |
![]() |
![]() |
![]() |
![]() |
| 8 | 9 | 10 | 11 |
![]() |
![]() |
![]() |
![]() |
| 12 | 13 | 14 | 15 |
![]() |
![]() |
![]() |
![]() |
- Mainnet metadata CID:
QmXTn6YvXZgNmNzyBN19RgYgpG6YeZNnTwo1zWbHSb8x5b - Sepolia metadata CID:
QmbtxQySbQcGxMUxofMhoxdevKeQMjE9i6xuWsSoLnJbrw - Content supply: mainnet
1..1024, sepolia1..128 - Token URI shape:
ipfs://<metadataCID>/<tokenId>
-
Upload images (recursive):
cd content/mainnet/images ipfs add -r . # Save CID if you reference images by their own tree
-
Upload metadata (recursive):
cd content/mainnet/metadata ipfs add -r . # This CID becomes your baseMetadataURI
-
Upload images for Sepolia (recursive):
cd content/sepolia/images ipfs add -r . # Save CID if you reference images by their own tree
-
Upload metadata for Sepolia (recursive):
cd content/sepolia/metadata ipfs add -r . # This CID becomes your baseMetadataURI for Sepolia
forge build
forge test -vvexport RPC_URL=""
export ETH_FROM="0xYourDeployer"
export PRIVATE_KEY="0xYourPrivateKey"
export ETHERSCAN_API_KEY="..."
# MintGuard deployment parameters
export FEE="42000000000000000" # 0.042
export VOUCHER_SIGNER="0xYourSigner"
export PROXY_OWNER="0xYourProxyOwner"
export MINT_GUARD_OWNER="0xYourMintGuardOwner"
# NFT42 deployment parameters
export BASE_METADATA_URI="ipfs://QmYourMetadataCID/" # Your IPFS metadata CID
export MAX_TOKENS="1024" # Maximum number of tokens
export MINT_GUARD_ADDRESS="0xYourMintGuardAddress" # Set after MintGuard deployment# Deploy MintGuard
forge script script/DeployMintGuard.s.sol \
--rpc-url $RPC_URL --broadcast \
--verify --sender $ETH_FROM --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEY
# Update MINT_GUARD_ADDRESS with the deployed address
export MINT_GUARD_ADDRESS="0xDeployedMintGuardAddress"# Deploy NFT42
forge script script/DeployNFT42.s.sol \
--rpc-url $RPC_URL --broadcast \
--verify --sender $ETH_FROM --private-key $PRIVATE_KEY --etherscan-api-key $ETHERSCAN_API_KEYTo create a voucher for minting, use the signing script:
# Generate the voucher signature
forge script script/SignVoucher.s.sol --rpc-url $RPC_URLTo both generate the voucher and send the mint transaction:
# Mint NFT using voucher (generates signature and sends transaction)
forge script script/MintWithVoucher.s.sol \
--rpc-url $RPC_URL --broadcast \
--sender $ETH_FROM --private-key $PRIVATE_KEYThis script will generate the voucher signature and automatically send the mint transaction with the correct fee.
- NFT42: 0xF7f7996ce30179CDe83699417D49F405d742c0F1
- MintGuard: 0xb0cbda6f91a0d9215db1b7e662ba31c8b312cc54
Contracts deployed and verified on Sepolia for testing.
Use Sepolia metadata CID for token URIs and content range (1..128).
The 42 NFT collection has undergone a comprehensive security audit by Nick Bailo to ensure the safety and reliability of the smart contracts.
- Security Audit Report - In-depth analysis of the entire contracts.
- Website: LTV
- Protocol implementation: GitHub Repository
- Documentation: Protocol Documentation
- Twitter: @ltvprotocol















