| icon |
|---|
hand-wave |
Doppler is an onchain protocol for launching tokens through various price discovery auctions. Applications integrate Doppler, configure their token launch parameters, and get to market faster than building in-house smart contracts. Teams including Zora, Paragraph, Noice, and Bankr use Doppler to create new tokens by configuring inputs such as supply curves, vesting + inflation schedules, governance structures, and ongoing economics, such as fees or treasury management.
npm install @whetstone-research/doppler-sdk viemimport { DopplerSDK } from '@whetstone-research/doppler-sdk';
import {
createPublicClient,
createWalletClient,
http,
parseEther
} from 'viem';
import { base } from 'viem/chains'
// 1. Set up viem clients
const publicClient = createPublicClient({
chain: base,
transport: http(),
});
// 2. Set up your local wallet client
const walletClient = createWalletClient({
chain: base,
transport: http(),
account: '0x...', // Your wallet address
});
// 3. Initialize the SDK
const sdk = new DopplerSDK({
publicClient,
walletClient,
chainId: base.id,
});
// 4. Configure a multicurve auction using market cap ranges
const WETH = '0x4200000000000000000000000000000000000006';
const params = sdk
.buildMulticurveAuction()
.tokenConfig({
name: 'TEST',
symbol: 'TEST',
tokenURI: 'https://example.com/metadata.json'
})
.saleConfig({
initialSupply: parseEther('1000000000'),
numTokensToSell: parseEther('900000000'),
numeraire: WETH,
})
.withCurves({
numerairePrice: 3000, // ETH = $3000 USD
curves: [
{
marketCap: { start: 500_000, end: 1_500_000 },
numPositions: 10,
shares: parseEther('0.4')
},
{
marketCap: { start: 1_000_000, end: 5_000_000 },
numPositions: 10,
shares: parseEther('0.5')
},
{
marketCap: { start: 5_000_000, end: 'max' },
numPositions: 1,
shares: parseEther('0.1')
},
],
})
.withGovernance({ type: 'noOp' })
.withMigration({ type: 'noOp' })
.withUserAddress('0x...')
.build()
const result = await sdk.factory.createMulticurve(params)
console.log('Pool:', result.poolId)
console.log('Token address:', result.tokenAddress)With this Doppler Multicurve Launch, we configured:
- Token config - metadata such as the name, symbol, and other relevant data like an image.
- Sale config - allocations of the token and how much is available for sale.
- Curves - Defined in USD, the first curve ($500k) sets launch price.
- Governance & Migration - no onchain governance or protocol migration configured.
Continue learning more about Doppler and follow along with other SDK examples.