Skip to content

whetstoneresearch/doppler-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

222 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

icon
hand-wave

Home

About

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.

Get started

npm install @whetstone-research/doppler-sdk viem
import { 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

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.

Next steps

Continue learning more about Doppler and follow along with other SDK examples.

About

Documentation for the Doppler protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors