Home
About
Get started
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)Example configuration details
Next steps
Last updated