Zora
Zora is a token launchpad on Base that uses the @zoralabs/coins-sdk
for token creation. It follows a two-step process: calling createCoin
to submit the transaction, then extracting the token address from logs via
getCoinCreateFromLogs.
Social links and metadata are embedded as a data URI.
Chain
Base (Ethereum L2)
Key Details
| Property | Value |
|---|---|
| SDK | @zoralabs/coins-sdk |
| Launch Flow | createCoin → getCoinCreateFromLogs |
| Token Standard | ERC-20 |
| Metadata Storage | Data URI (inline) |
| Private Key Format | Hex with 0x prefix |
Setup
import { createSkills, getSkill } from "dex-skills";
const skills = createSkills({
wallets: {
base: {
privateKey: "0x-prefixed-hex-private-key",
rpcUrl: "https://mainnet.base.org",
},
},
});
const zora = getSkill(skills, "zora"); Launch a Token
Token creation on Zora constructs a metadata data URI containing name, description, image, and all social
links. The createCoin function submits the transaction, and
getCoinCreateFromLogs extracts the newly created token address from the transaction receipt logs.
const result = await zora.launch({
name: "Zora Token",
symbol: "ZTKN",
description: "A token launched on Zora via dex-skills.",
imageUrl: "https://example.com/token-logo.png",
initialBuyAmount: "0.001",
links: {
twitter: "https://x.com/zoratoken",
telegram: "https://t.me/zoratoken",
website: "https://zoratoken.xyz",
},
});
console.log("Token address:", result.tokenAddress);
console.log("Transaction:", result.txHash); Launch Parameters
| Parameter | Type | Description |
|---|---|---|
| name * | string | Display name of the token. |
| symbol * | string | Token ticker symbol. |
| description | string | Description of the token. |
| imageUrl | string | URL to the token image. Must be publicly accessible. Embedded in metadata URI. |
| initialBuyAmount | string | Amount of ETH to spend on an initial buy immediately after launch. |
| links | object | Social links object with optional keys: twitter, telegram, website. Embedded in metadata URI. |
Query Token Info
const token = await zora.getTokenInfo("0xTokenContractAddress...");
console.log("Name:", token.name);
console.log("Symbol:", token.symbol);
console.log("Total Supply:", token.totalSupply);
console.log("Market Cap:", token.marketCap); List Tokens
const tokens = await zora.listTokens({
limit: 20,
sortBy: "createdAt",
sortOrder: "desc",
});
for (const token of tokens) {
console.log(token.symbol, token.tokenAddress);
} Buy Tokens
Purchase tokens on Zora by specifying the token address, ETH amount, and optional slippage.
const result = await zora.buy({
tokenAddress: "0xTokenContractAddress...",
amount: "0.01",
slippage: 5,
});
console.log("Tx Hash:", result.txHash);
console.log("Tokens received:", result.tokenAmount); Sell Tokens
Sell tokens on Zora by specifying the token address and amount of tokens to sell.
const result = await zora.sell({
tokenAddress: "0xTokenContractAddress...",
amount: "1000000",
slippage: 5,
});
console.log("Tx Hash:", result.txHash);
console.log("ETH received:", result.nativeAmount); Get Trending
const trending = await zora.getTrending({
category: "volume",
limit: 20,
});
for (const token of trending) {
console.log(token.symbol, token.volume24h);
} Trade History
const trades = await zora.getTradeHistory("0xTokenContractAddress...", { limit: 50 });
for (const trade of trades) {
console.log(trade.action, trade.tokenAmount, trade.priceUsd);
} Get Holders
Zora is the only platform that supports querying token holder information.
const holders = await zora.getHolders("0xTokenContractAddress...", { limit: 20 });
for (const holder of holders) {
console.log(holder.address, holder.balance, holder.percentage + "%");
} Supported Methods
| Method | Supported |
|---|---|
| launch() | Yes |
| getTokenInfo() | Yes |
| listTokens() | Yes |
| buy() | Yes |
| sell() | Yes |
| getTrending() | Yes |
| getTradeHistory() | Yes |
| getHolders() | Yes |
| estimatePrice() | No |
Platform Notes
createCoin
transaction is mined, the new token address is extracted from the transaction receipt logs using
getCoinCreateFromLogs.
This is handled automatically by dex-skills.
0x prefix.
Do not use base58-encoded keys.
Supported Social Links
All social link fields are embedded directly in the metadata data URI. Any field can be included.
| Field | Description |
|---|---|
| Twitter/X profile URL | |
| telegram | Telegram group or channel URL |
| website | Project website URL |
| discord | Discord server invite URL |