Developer reference
Agents
No API key, no signup, no launch fee. A launch is one contract call from any wallet with a little ETH for gas. Everything the site shows is also JSON.
The interface is optional.The same protocol is yours to build with.
Launch a token
One call, from your own wallet.
Base
Chain 8453- factory
- not deployed yet
- locker
- not deployed yet
Robinhood Chain
Chain 4663- factory
- not deployed yet
- locker
- not deployed yet
Call launch(params) on that chain's factory. The example below launches on Base with an ETH quote.
cast send <factory> \
"launch((string,string,string,address,uint256,int24,uint24,bytes32,(address,uint16)[]))" \
"(My Token,MYT,,0x0000000000000000000000000000000000000000,0,184200,10000,0x$(openssl rand -hex 32),[(0xYourWallet,10000)])" \
--rpc-url https://mainnet.base.org --private-key $PKExample only. Replace the wallet placeholder and review the parameters before sending a transaction. Never share your private key.
Parameters, without the guesswork
quote- ETH uses address zero. For a tokenized stock use its issuer-registry address (
GET /api/quotes?chain=base|robinhood&q=AAPLlists them with live prices); for USDG on Robinhood Chain,0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168. Any other ERC-20 on the chain works too (pair with any coin): check it first withGET /api/quotes/inspect?chain=base|robinhood&address=0x…, which returnsblockers(the site refuses those: no readable ERC-20, over 18 decimals, under $10,000 of DexScreener liquidity, GoPlus honeypot / transfer tax / pausable on Base) andwarnings. For any ERC-20 quote callfindSalt(...)first so the token address sorts above the quote. supply0means the default1Bsupply.startTick- Sets the opening market cap. A multiple of
200;184200 ≈ 10 ETHFDV for1Bsupply. lpFee- In pips:
10000 = 1%,20000 = 2%or30000 = 3%. Anything under 1% revertsBadFee. recipients- Your split of the creator share: bps summing to
10000, at most6rows, each at least2bps. The factory registers the protocol treasury first at3000bps (30%, buyback & burn) and scales your rows into the remaining7000(70%). Empty means your share is burned. Preview the on-chain list withpreviewRecipients(recipients). vaultOf(handle)- Fees to an X account. Each chain's
XVaultFactory(not deployed yet) maps a handle (lowercase, no @,[a-z0-9_]{1,15}) to a deterministic CREATE2 vault: passvaultOf("handle")as a recipientpayoutand the locker pays it like any wallet, before the vault even exists. The handle's owner claims by signing in with X on the site (/x/<handle>): the site's attester signs EIP-712Claim(bytes32 handleHash,address to,uint256 deadline)(domainXVaultFactory/1) andclaim(handle, to, deadline, sig, currencies)sweeps the vault toto. Anyone may submit it; funds only ever go toto. Send the handle ↔ vault map asx_recipientswith the metadata so the site labels the row@handle. launchWithHolderRewards(params)- The holders fee mode (a reward coin): the same
LaunchParamswithrecipientsempty, anything else revertsRecipientsNotAllowed. The factory deploys aRewardPoolfor the launch, returns it as a third value (token, tokenId, pool; alsoRewardPoolCreated(token, pool, quote)andrewardPoolOf(token)) and registers it for your7000bps. Buy-side fees, in the quote asset, are paid out to holders pro-rata by the protocol keeper a few times a day;distribute()is capped per holder on-chain (capOf(holder)), so the keeper cannot misdirect funds. Sell-side fees, in the launch token, are burned by anyone viaburnTokenLeg(). Views:pot(),totalDistributed(),rounds(),circulating().
Read the API
JSON endpoints, plus a plain-text agent reference.
/api/launch/listBrowse and sort launches
?chain=base|robinhood&sort=live|new|mcap|volume|gainers|holders&window=1h|24h|all&limit=50/api/launch/feedLatest launches + trades
/api/launch/meta/<token>Image, description and links
/api/quotes/inspectCheck a coin before pairing with it
?chain=base|robinhood&address=0x…/api/launch/rewardsHolder-reward payouts for a reward coin
?chain=base|robinhood&token=0x…&wallet=0x…/x/<handle>An X account's fee vaults, balances and launches (page)
/llms.txtMachine-readable reference
GET https://nasdegen.fun/api/launch/list?chain=base|robinhood&sort=live|new|mcap|volume|gainers|holders&window=1h|24h|all&limit=50
GET https://nasdegen.fun/api/launch/feed # latest launches + trades
GET https://nasdegen.fun/api/launch/meta/<token> # image / description / links
GET https://nasdegen.fun/api/quotes/inspect?chain=base|robinhood&address=0x… # can this coin be a quote? {ok, symbol, decimals, usd, liquidityUsd, warnings, blockers}
GET https://nasdegen.fun/api/launch/rewards?chain=base|robinhood&token=0x…[&wallet=0x…] # reward-coin payouts: {total, burned, rounds, last_at, mine}
GET https://nasdegen.fun/llms.txtRaw token and quote amounts are decimal integer strings. Use quote_decimals for quote amounts, not a blanket 18 decimals. price_quote and fdv_quote are numbers in the token's quote asset; explicit price_usd, fdv_usd and volume_usd fields are USD values and may be null when pricing is unavailable.
Poll modestly and back off on errors. Indexing and server-side caching mean responses are not a guarantee of the latest chain state, even when an HTTP response uses no-store.
Trade & collect
Standard pools. Direct contract calls.
Speak Uniswap v4
Pools are plain Uniswap v4, with tick spacing 200 and no hook. The quote can be ETH, USDG (Robinhood Chain), a supported issuer-registry stock token, or any ERC-20 the creator paired with (quote_key is custom in the API; quote_symbol then comes from the coin's own contract). Get the actual pool key with poolKeyOf(token) on the factory. Swap through the Universal Router with a V4_SWAP command, or any router that speaks v4.
Pay out accrued fees
Anyone may call collect(tokenId) on that chain's locker to pay out accrued fees. Base locker: <locker>. Use the matching chain address above.
Tokenized stocks are third-party securities offered under Regulation S, not to US persons. The site recognizes them from issuer registries, not on-chain names.