Governance Options
Overview
Using NoOpGovernanceFactory
Prerequisites
Implementation
import { ReadWriteFactory, CreateV3PoolParams } from 'doppler-v3-sdk';
import { DOPPLER_V3_ADDRESSES } from 'doppler-v3-sdk';
// Get addresses for your chain
const chainId = 84532; // Base Sepolia
const addresses = DOPPLER_V3_ADDRESSES[chainId];
// Check if NoOpGovernanceFactory is available
if (!addresses.noOpGovernanceFactory) {
throw new Error('NoOpGovernanceFactory not deployed on this chain');
}
// Create parameters with NoOpGovernanceFactory
const createParams: CreateV3PoolParams = {
integrator: '0x...', // Your integrator address
userAddress: '0x...', // User creating the token
numeraire: '0x...', // Base token (e.g., WETH)
contracts: {
tokenFactory: addresses.tokenFactory,
// Use NoOpGovernanceFactory instead of standard governanceFactory
governanceFactory: addresses.noOpGovernanceFactory,
v3Initializer: addresses.v3Initializer,
liquidityMigrator: addresses.liquidityMigrator,
},
tokenConfig: {
name: 'My Token',
symbol: 'MTK',
tokenURI: 'https://example.com/metadata.json',
},
vestingConfig: 'default',
// Optional: Configure V4 migration
liquidityMigratorData: '0x...', // See V4 migrator docs
};
// Create the factory instance
const factory = new ReadWriteFactory(addresses.airlock, driftClient);
// Encode and create the token
const createData = await factory.encodeCreateData(createParams);Using Standard Governance
Custom Governance Factory
Fee Distribution
Standard Governance (90/10 Split)
No-Op Governance (100% Locked)
See Also
Last updated