Overview
The Auction contract provides methods to list existing auctions, retrieve specific auctions, and create new dynamic auctions based on templates.
List Auctions
Fetch all auctions for your integrator.
const response = await client.auctions.listAuctions();
if (response.status === 200) {
const auctions = response.body.result;
auctions.forEach(auction => {
console.log(`${auction.auction_base_token_symbol}/${auction.auction_quote_token_symbol}`);
console.log(`Pool: ${auction.auction_pool_address}`);
});
}
Response
{
auction_pool_address: string;
auction_pool_id: string;
auction_base_token_name: string;
auction_base_token_symbol: string;
auction_base_token_address: string;
auction_quote_token_name: string;
auction_quote_token_symbol: string;
auction_quote_token_address: string;
}
Get Auction by Pool Address
Retrieve a specific auction using its pool address.
const response = await client.auctions.getAuctionByPoolAddress({
params: {
poolAddress: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
},
});
if (response.status === 200) {
const auction = response.body.result;
console.log(`Auction: ${auction.auction_base_token_symbol}/${auction.auction_quote_token_symbol}`);
} else if (response.status === 404) {
console.error('Auction not found');
}
Parameters
poolAddress (required): Hex-encoded pool address
Create Dynamic Auction
Create a new auction based on an auction template.
const response = await client.auctions.createDynamicAuction({
body: {
template_id: 'template-uuid',
debug: false,
metadata: {
token_name: 'My Token',
token_symbol: 'MTK',
token_uri: 'ipfs://Qm...',
user_address: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
},
},
query: {
chainId: 8453, // Base Mainnet
}
});
if (response.status === 200) {
const result = response.body.result;
console.log('Token Address:', result.token_address);
console.log('Hook Address:', result.hook_address);
console.log('Encoded Payload:', result.encoded_payload);
}
Parameters
template_id (required): UUID of the auction template
debug (optional): Enable debug mode (default: false)
metadata (required):
token_name: Token name
token_symbol: Token symbol
token_uri: IPFS URI for token metadata
user_address: Creator address
Response
{
params?: {
governance_factory: string;
governance_factory_data: string;
pool_initializer: string;
pool_initializer_data: string;
liquidity_migrator: string;
liquidity_migrator_data: string;
integrator: string;
salt: string;
initial_supply: string;
num_tokens_to_sell: string;
numeraire: string;
token_factory: string;
token_factory_data: string;
};
hook_address?: string;
token_address?: string;
encoded_payload: string;
}
Examples
Create Auction
const response = await client.auctions.createDynamicAuction({
body: {
template_id: 'template-uuid',
metadata: {
token_name: 'Community Token',
token_symbol: 'COM',
token_uri: 'ipfs://Qm...',
user_address: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
},
},
query: {
chainId: 8453, // Base Mainnet
}
});
if (response.status === 200) {
console.log('Auction created successfully');
console.log('Encoded payload:', response.body.result.encoded_payload);
}
Find Auction for Specific Token Pair
const response = await client.auctions.listAuctions();
if (response.status === 200) {
const auctions = response.body.result;
const ethAuctions = auctions.filter(
auction => auction.auction_quote_token_symbol === 'WETH'
);
console.log(`Found ${ethAuctions.length} ETH-quoted auctions`);
}
Debug Mode for Testing
const response = await client.auctions.createDynamicAuction({
body: {
template_id: 'test-template-uuid',
debug: true, // Enable debug mode
metadata: {
// ... metadata
},
},
query: {
chainId: 8453, // Base Mainnet
}
});
Debug mode provides additional logging and validation but should not be used in production.