What You Can Build
With the deploy-drop feature, you can:- Deploy Custom NFT Contracts: Create ERC721 contracts with your own branding and configuration
- Manage Asset Lifecycle: Upload images, create metadata, and lazy mint NFTs
- Configure Drop Conditions: Set pricing, timing, and purchase limits
- Control Visibility: Show or hide your drops from public marketplaces
- Collect Creator Fees: Configure royalties and fee collection addresses
Complete Workflow
A typical NFT drop follows this sequence:- Upload Image → Host your NFT artwork
- Deploy Contract → Create your custom ERC721 contract
- Lazy Mint → Prepare NFTs for sale without upfront gas costs
- Set Conditions → Configure pricing, timing, and limits
- Update Visibility → Control marketplace visibility
Authentication
All deploy-drop endpoints require a secret key for authentication. Include your project’s secret key in theAuthorization header:
Supported Networks
The deploy-drop feature supports deployment on:- Soneium (Chain ID: 1868) - Primary network
- Additional networks available upon request
Integration Workflow
1. Upload Image
Upload your NFT artwork to get a hosted URL for metadata. Endpoint:POST /v1/project-wallet/deploy-drop/upload-image
Parameters:
imageFile(file): Image file (max 10MB)assetName(string): Name for your asset
2. Deploy Contract
Create your custom ERC721 contract on the blockchain. Endpoint:POST /v1/project-wallet/deploy-drop/deploy-contract
Parameters:
chainId(number): Network chain ID (e.g., 1868 for Soneium)imageUrl(string): URL from the upload-image stepname(string): Contract name (e.g., “My Awesome Collection”)symbol(string): Contract symbol (e.g., “MAC”)isCreatorFee(boolean, optional): Enable creator feescreatorFeeAddress(string, optional): Address to receive fees
3. Lazy Mint NFTs
Prepare NFTs for sale without paying upfront minting costs. Gas is only paid when users actually purchase. Endpoint:POST /v1/project-wallet/deploy-drop/lazy-mint
Parameters:
chainId(number): Network chain IDcontractId(string): Contract ID from deploy stepassetName(string): NFT nameassetDescription(string, optional): NFT descriptionassetImageUrl(string): Image URL for this NFTamount(number): Quantity to make available
4. Set Drop Conditions
Configure pricing, timing, and purchase limits for your drop. Endpoint:POST /v1/project-wallet/deploy-drop/set-conditions
Parameters:
chainId(number): Network chain IDcontractId(string): Contract IDprice(string): Price per NFT in ETH (e.g., “0.1”)currencyAddress(string, optional): Custom token address (defaults to ETH)amount(number): Total NFTs available for salestartTime(string, optional): Start time in UTC (defaults to now)endTime(string, optional): End time in UTC (defaults to 24h from now)limitPerWallet(number, optional): Max NFTs per wallet
5. Update Visibility
Control whether your drop appears on public marketplaces. Endpoint:POST /v1/project-wallet/deploy-drop/update-visibility
Parameters:
contractId(string): Contract IDisVisible(boolean): Show (true) or hide (false) from marketplaces