How Launching Works
A launch is two steps: one off-chain, one on-chain.
you
│
│ 1. POST /api/launch/prepare (logo, name, symbol, description, links)
▼
HoodPump API ──▶ pins logo + metadata to IPFS ──▶ signs an Agent NFT voucher
│
│ 2. { projectCid, agentCid, agentSignature }
▼
you
│
│ 3. HoodPumpFactory.deploy(params) ← one on-chain transaction
▼
HoodPumpFactory
│
├─ mints your Agent NFT
├─ deploys your ERC20 (1,000,000,000 supply, 18 decimals)
├─ opens a Uniswap V4 pool at your chosen starting price
├─ seeds a one-sided LP with 100% of the token supply
├─ locks that LP position for 750 days
└─ optionally executes an immediate dev buyStep 1: Prepare (off-chain)
Before you can call the factory, you need two things that only the HoodPump API can produce:
ipfsHash: the IPFS CID of your project's metadata (name, symbol, description, logo, links). This becomes your token's on-chain metadata pointer.agentSignature: an EIP-712 voucher, signed by HoodPump's signer key, authorizing the factory to mint your project's Agent NFT over that exact metadata. This is a security measure: the factory will only mint an Agent NFT if it has a valid signature over the CID being deployed.
Both come back from one call:
curl -X POST https://ipfs.hoodpump.live/api/launch/prepare \
-F "logo=@./logo.png" \
-F "name=My Token" \
-F "symbol=MTK" \
-F "description=What my token does"{
"logoCid": "bafybe...",
"projectCid": "bafybe...",
"agentCid": "bafybe...",
"agentSignature": "0x..."
}agentCid and projectCid are the same value: the Agent NFT's metadata is the project's metadata, there's no separate 3D-avatar or alternate metadata pool to manage.
Vouchers are single-use and metadata-locked
agentSignature is only valid for the exact name/symbol/metadata you prepared it with. If you change any of those fields, call /api/launch/prepare again to get a fresh voucher. Always prepare immediately before you deploy.
See the API Reference for the full request/response shape.
Step 2: Deploy (on-chain)
With ipfsHash, agentCid, and agentSignature in hand, call HoodPumpFactory.deploy():
function deploy(DeployParams calldata p)
external
payable
returns (address token, uint256 positionId, uint256 tokenAmount, uint256 agentTokenId);DeployParams bundles every launch setting: name, symbol, paired token, starting price, fee tier, dev buy amount, sniper protection, reward-token config, fee-recipient splits, plus the two values from step 1.
The call is payable: you must send at least the current deploymentFee (read it live from the contract, it can change), plus any ETH you want to spend on an immediate dev buy if you're pairing against WETH.
On success, the transaction emits TokenDeployed with your new token's address, its Agent NFT id, and its LP position id. From that point the pool is live and tradeable, no further setup needed.
Doing this yourself
If you're integrating your own launch UI or bot, both steps above are just an HTTP POST and a contract call, see the API Reference, Official Addresses, and the integration examples repo for copy-pasteable code.
