# Table of Contents - [Introduction to Clanker | Clanker Documentation](#introduction-to-clanker-clanker-documentation) - [Changelog | Clanker Documentation](#changelog-clanker-documentation) - [Token Deployments | Clanker Documentation](#token-deployments-clanker-documentation) - [Educational Resources | Clanker Documentation](#educational-resources-clanker-documentation) - [Legacy Fee Claims | Clanker Documentation](#legacy-fee-claims-clanker-documentation) - [Creator Rewards & Fees | Clanker Documentation](#creator-rewards-fees-clanker-documentation) - [Public | Clanker Documentation](#public-clanker-documentation) - [FAQ | Clanker Documentation](#faq-clanker-documentation) - [Alternative Interface Deployments | Clanker Documentation](#alternative-interface-deployments-clanker-documentation) - [Clanker.world Warning Tags | Clanker Documentation](#clanker-world-warning-tags-clanker-documentation) - [Farcaster Bot Deployments | Clanker Documentation](#farcaster-bot-deployments-clanker-documentation) - [Preclank Deployments | Clanker Documentation](#preclank-deployments-clanker-documentation) - [Clanker.world Deployments | Clanker Documentation](#clanker-world-deployments-clanker-documentation) - [v3.1.0 | Clanker Documentation](#v3-1-0-clanker-documentation) - [Quick Start | Clanker Documentation](#quick-start-clanker-documentation) - [Quick Start | Clanker Documentation](#quick-start-clanker-documentation) - [Get Paginated List of Tokens | Clanker Documentation](#get-paginated-list-of-tokens-clanker-documentation) - [CLI | Clanker Documentation](#cli-clanker-documentation) - [Get Tokens by Creator | Clanker Documentation](#get-tokens-by-creator-clanker-documentation) - [Authenticated | Clanker Documentation](#authenticated-clanker-documentation) - [[DEPRECATED] Get Estimated Rewards | Clanker Documentation](#-deprecated-get-estimated-rewards-clanker-documentation) - [v4.0.0 | Clanker Documentation](#v4-0-0-clanker-documentation) - [Core Contracts | Clanker Documentation](#core-contracts-clanker-documentation) - [[DEPRECATED] Get Uncollected Fees | Clanker Documentation](#-deprecated-get-uncollected-fees-clanker-documentation) - [Brand Assets | Clanker Documentation](#brand-assets-clanker-documentation) - [Core Team | Clanker Documentation](#core-team-clanker-documentation) - [Fee Management Contracts | Clanker Documentation](#fee-management-contracts-clanker-documentation) - [Index Token | Clanker Documentation](#index-token-clanker-documentation) - [ClankerFeeLocker | Clanker Documentation](#clankerfeelocker-clanker-documentation) - [Compatible Trading Platforms | Clanker Documentation](#compatible-trading-platforms-clanker-documentation) - [ClankerLpLockerMultiple [Deprecated] | Clanker Documentation](#clankerlplockermultiple-deprecated-clanker-documentation) - [ClankerVault | Clanker Documentation](#clankervault-clanker-documentation) - [Extensions | Clanker Documentation](#extensions-clanker-documentation) - [Contact | Clanker Documentation](#contact-clanker-documentation) - [ClankerUniv4EthDevBuy | Clanker Documentation](#clankeruniv4ethdevbuy-clanker-documentation) - [ClankerLpLockerFeeConversion | Clanker Documentation](#clankerlplockerfeeconversion-clanker-documentation) - [Get Claimed Fees [beta] | Clanker Documentation](#get-claimed-fees-beta-clanker-documentation) - [v4 | Clanker Documentation](#v4-clanker-documentation) - [Audits | Clanker Documentation](#audits-clanker-documentation) - [ClankerAirdrop | Clanker Documentation](#clankerairdrop-clanker-documentation) - [ClankerHook | Clanker Documentation](#clankerhook-clanker-documentation) - [Get Tokens by Admin | Clanker Documentation](#get-tokens-by-admin-clanker-documentation) - [ClankerToken v3.1.0 and v4.0.0 | Clanker Documentation](#clankertoken-v3-1-0-and-v4-0-0-clanker-documentation) - [Supported Quote Tokens | Clanker Documentation](#supported-quote-tokens-clanker-documentation) - [ClankerHookStaticFee | Clanker Documentation](#clankerhookstaticfee-clanker-documentation) - [ClankerAirdropV2 | Clanker Documentation](#clankerairdropv2-clanker-documentation) - [ClankerPresaleAllowlist | Clanker Documentation](#clankerpresaleallowlist-clanker-documentation) - [ClankerVault | Clanker Documentation](#clankervault-clanker-documentation) - [ClankerHookDynamicFeeV2 | Clanker Documentation](#clankerhookdynamicfeev2-clanker-documentation) - [v3.1 | Clanker Documentation](#v3-1-clanker-documentation) - [LpLockerv2 | Clanker Documentation](#lplockerv2-clanker-documentation) - [ClankerMevModule2BlockDelay | Clanker Documentation](#clankermevmodule2blockdelay-clanker-documentation) - [ClankerHookV2 | Clanker Documentation](#clankerhookv2-clanker-documentation) - [ClankerHookStaticFeeV2 | Clanker Documentation](#clankerhookstaticfeev2-clanker-documentation) - [Get Token by Address | Clanker Documentation](#get-token-by-address-clanker-documentation) - [ClankerPresaleEthToCreator | Clanker Documentation](#clankerpresaleethtocreator-clanker-documentation) - [ClankerMevDescendingFees | Clanker Documentation](#clankermevdescendingfees-clanker-documentation) - [ClankerHookDynamicFee | Clanker Documentation](#clankerhookdynamicfee-clanker-documentation) - [Clanker (Direct Contract Deployments) | Clanker Documentation](#clanker-direct-contract-deployments-clanker-documentation) - [Deployment Config | Clanker Documentation](#deployment-config-clanker-documentation) - [Get Tokens Deployed by Address | Clanker Documentation](#get-tokens-deployed-by-address-clanker-documentation) - [Mev Modules | Clanker Documentation](#mev-modules-clanker-documentation) - [Pool Extensions | Clanker Documentation](#pool-extensions-clanker-documentation) - [Administrative Permissions | Clanker Documentation](#administrative-permissions-clanker-documentation) - [ClankerSniperAuctionV0 | Clanker Documentation](#clankersniperauctionv0-clanker-documentation) - [ClankerSniperAuctionV2 | Clanker Documentation](#clankersniperauctionv2-clanker-documentation) - [Deploy Token (v4.0.0) | Clanker Documentation](#deploy-token-v4-0-0-clanker-documentation) - [Deployed Contracts | Clanker Documentation](#deployed-contracts-clanker-documentation) --- # Introduction to Clanker | Clanker Documentation Clanker is a set of audited smart contracts that create token markets which reward token creators. Currently, Clanker deploys ERC-20 tokens on [Basearrow-up-right](https://www.base.org/) in a few ways: 1. Farcaster users may request [@clankerarrow-up-right](https://warpcast.com/clanker) on Farcaster to deploy a token. 2. Users may use the [clanker.worldarrow-up-right](https://www.clanker.world/) frontend interface and Farcaster Mini App to deploy a token. 3. Developers may create their own token creation experiences using the Clanker SDK, get started here: [Quick Start](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start) . 4. Users / interfaces may directly interact with Clanker's [Core Contracts](https://clanker.gitbook.io/clanker-documentation/references/core-contracts) to deploy tokens. Token creators earn rewards based on trading volume on their created tokens. See [Creator Rewards & Fees](https://clanker.gitbook.io/clanker-documentation/general/creator-rewards-and-fees) for more detail. Last updated 1 month ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Changelog | Clanker Documentation [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#august-7-2025) August 7, 2025 ------------------------------------------------------------------------------------------------------- @clanker on Farcaster now deploys tokens with Clanker's Recommended configuration for fees and initial pool liquidity. UI deployments via clanker.world/deploy now also default to the Recommended configuration. Read more about the fee and pool setups in [Clanker.world Deployments](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments) . [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#august-6-2025) August 6, 2025 ------------------------------------------------------------------------------------------------------- Clanker v4.0.0 is now live on Unichain. Deployments are supported through [SDK](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start) and [Clanker.world Deployments](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments) . Contract addresses: [Unichain: 130](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#unichain-130) . [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#july-14-2025) July 14, 2025 ----------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#garbitrum) gArbitrum Clanker v4.0.0 is now live on Arbitrum One. Deployments are supported through [SDK](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start) , [Farcaster Bot Deployments](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments) , and [Clanker.world Deployments](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments) . Contract addresses: [Arbitrum One: 42161](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#arbitrum-one-42161) . [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#july-8-2025) July 8, 2025 --------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#auctions) Auctions Clanker v4.0.0 introduces MEV modules, opt-in contracts that affect the behavior of the early lifecycle of a Clanker token's pool. The first MEV module we are trying auctions off the first few swaps of freshly deployed pools, giving the auction proceeds to creators. This auction will only ever be deployed on Priority ordered L2s. The auction MEV module will be enabled for tokens created through clanker.world, @clanker on Farcaster, API deployments, and SDK deployments. SDK users may opt out of using MEV modules. How it works: * When a new token is created, there's a brief "auction period" before normal trading opens to everyone. This auction is designed to capture value from MEV bots (sophisticated trading bots that try to profit from new token launches) and redirect some of the value back to the token's creator. * Normal trading starts after 5 rounds of the auction have completed (roughly 22 seconds post token deployment) or immediately after a round of the auction that has no bidders. The maximum delay before normal trading can start is at block _n+11_. * For additional detail, please refer to the [ClankerSniperAuctionV0](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) documentation. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#clanker.world) Clanker.world As you might have noticed, clanker.world has gotten a visual update over the past couple of weeks. The token creation page at [clanker.world/deployarrow-up-right](https://www.clanker.world/deploy) will be updated to deploy v4.0.0 tokens on July 9. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#clanker-on-farcaster) @clanker on Farcaster @clanker on Farcaster will be updated to deploy v4.0.0 tokens on July 9. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#sdk) SDK The Clanker SDK is available to deploying tokens on v4.0.0 contracts. Please see the [v4.0.0](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0) SDK documentation for more detail. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#api) API #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#new-endpoints) New Endpoints * [Deploy Token (v4.0.0)](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0) - Deploy tokens on Clanker's v4.0.0 contracts starting on July 9. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#planned-eol) Planned EOL * [Get Tokens by Creator](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator) - EOL July 31, 2025. Migrate to [Get Paginated List of Tokens](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens) . * \- EOL July 31, 2025. Migrate to [Deploy Token (v4.0.0)](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0) . * \- EOL July 31, 2025 Migrate to [Deploy Token (v4.0.0)](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0) . [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#may-9-2025) May 9, 2025 ------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#gmonad) gmonad @clanker on Farcaster can now deploy tokens on Monad Testnet. Tag @clanker on Farcaster and include the phrase "gmonad" or "monad" to create your own Clanker on Monad Testnet. > _gmonad @clanker, deploy BROOKLYNCRYPTO_ triangle-exclamation Only casts containing `gmonad` or `monad` will deploy tokens on Monad Testnet. All other requests to @clanker will deploy tokens on Base Mainnet. [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#april-21-2025) April 21, 2025 ------------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#configurable-starting-market-caps) Configurable Starting Market Caps Deployments are now more flexible with configurable starting market caps for WETH-paired tokens. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#api-deployments) API Deployments API users using the endpoint may optionally pass in the `initialMarketCap` parameter when creating WETH-paired tokens. This defaults to 10, which creates a ~10 ETH starting market cap token. The minimum value accepted is 1, which creates a ~1 ETH starting market cap token. There is no maximum value / limit on this parameter. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#clanker.world-1) clanker.world Users deploying tokens via [clanker.worldarrow-up-right](https://www.clanker.world/deploy) can now choose between 1, 5, and 10 ETH for their the starting market cap of their token. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#april-17-2025) April 17, 2025 ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#indexing-all-clanker-tokens) Indexing All Clanker Tokens Today, clanker.world and the Clanker API will surface and return info for _almost_ all tokens deployed through the Clanker contracts ([Deployed Contracts](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts) ). This means that tokens deployed directly to the Clanker contracts with a variety of starting market caps and quote tokens will be included. To help users interpret this data, we're surfacing additional info on clanker.world and adding net new response fields to the API endpoints. Currently, clanker.world and API endpoints will return all tokens deployed on Clanker contracts EXCEPT those with `warnings` flags (see [Frontend updates (clanker.world)](https://clanker.gitbook.io/clanker-documentation/changelog#frontend-updates-clanker.world) for more info). Tokens with `warnings` flags are rare at the moment, but developers using the API should implement their own filtering logic depending on what they would like to surface to their users. circle-exclamation These guardrails on clanker.world and API are set to be removed on **Friday, April 25**, at which point all tokens deployed on Clanker contracts will be available through clanker.world and the API - regardless of the launch setup of the token. Tokens pages on clanker.world will display a banner with the relevant `warnings` flag, while the API will return the flag in the response. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#frontend-updates-clanker.world) Frontend updates (clanker.world) Token pages will now show the starting market cap, referenced in the quote token that new token was deployed against. For now, all WETH-paired tokens with a starting mcap of at least 1 ETH will be shown, in addition to tokens paired against the [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) at the ticks specified in the table. Soon, (once the aforementioned guardrails are removed), clanker.world will show all tokens, irrespective of the quote token or starting market cap. Token pages will then surface warning tags for tokens deployed with atypical pool configurations. See below for a list of the current tags: * Unusual Tick * WETH-denominated tokens with a starting market cap of < 1 ETH (WETH) * Non-WETH tokens listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) with pools that do not match the initial tick listed in that table * Unusual Pair Address * Tokens paired with a quote token not listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) * Missing Pool Config * Tokens with incomplete or missing pool configuration info. These are primary legacy tokens that were deployed with a standard configuration ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#api-updates) API updates circle-exclamation API endpoints will return all tokens deployed on Clanker contracts **EXCEPT** those with `warnings` flags. The exception is to provide API users with a period of time to implement their own filtering logic based on the `warnings` and `pool_config` data. These guardrails are set to be removed on **Friday, April 25**, at which point all tokens deployed on Clanker contracts will be available through the API - regardless of the launch setup of the token. Please thoroughly review the new response fields below (most importantly the `warnings`, `pool_config`, and `starting_market_cap` fields) New response fields will be added for the following endpoints: `/tokens`, `/tokens/search`, `/tokens/fetch-deployed-by-address`, and `/get-clanker-by-address` **New response fields:** * warnings: Any warning flags associated with the token * `UNUSUAL_TICK` * WETH-denominated tokens with a starting market cap of < 1 ETH (WETH) * Non-WETH tokens listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) with pools that do not match the initial tick listed in that table * `UNUSUAL_PAIR_ADDRESS` * Tokens paired with a quote token not listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) * `MISSING_POOL_CONFIG` * Tokens with incomplete or missing pool configuration info. These are primary legacy tokens that were deployed with a standard configuration * pool\_config: Configuration for the token's liquidity pool * starting\_market\_cap: Initial market capitalization, denominated in the quote token * The quote token is returned as `pairedToken` within `pool_config` * chain\_id: Parsed as integer from database value * metadata: Token metadata from database * deploy\_config: JSON stringified deployment configuration * social\_context: JSON stringified social context (when creator info is available) * deployed\_at: Deployment timestamp * msg\_sender: Address that sent the transaction to deploy the token * factory\_address: Address of the factory contract * locker\_address: Address of the locker contract [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#march-18-2025) March 18, 2025 ------------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#new-v0.3.1-contracts) New v0.3.1 Contracts #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#permissionless-deployments) _**Permissionless deployments**_ Anyone can interact with the v0.3.1 Clanker factory contract to create clankers. Creators may deploy directly from the contract, while new interfaces can be built on top of the contracts permissionlessly. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#social-context-and-mutable-metadata) _**Social context & mutable metadata**_ Creators and interfaces may pass in social context (e.g. references to Farcaster casts or X posts) during their deployments, which is immutable and can serve as a link to the origin of the deployment. Metadata such as references to the websites or social media profiles for tokens may be added as well. The metadata for tokens is mutable and can be updated by the token's admin (typically the creator). #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#creator-vaults) _**Creator vaults**_ Creators may optionally allocate up to 30% of the token supply to the creator vault at time of deployment. Creators can set the unlock time on the vault, but there is a hard minimum of 30 days. After such time has passed, creators can claim the vaulted tokens from the vault. Deployments with creator vaults are supported through the Clanker API. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#creator-buys) _**Creator buys**_ Creators may optionally send ETH during the token deployment transaction to purchase the token they are creating. This occurs after the the optional creator vault allocation is sent to the vault. Deployments with creator buys are not yet supported through the Clanker API. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/changelog#deprecations) Deprecations This upgrade marks the change from v0.3.0 to v0.3.1 contracts. Please refer to [Deployed Contracts](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts) for the list of contracts. At this transition period, deployments through the v0.3.0 token factory will be deprecated. Presales will be deprecated and are not supported in v0.3.1. The following endpoints will be deprecated: * * If you are currently using this endpoint, please contact our team for alternative deployment solutions using the endpoint. [PreviousIntroduction to Clankerchevron-left](https://clanker.gitbook.io/clanker-documentation) [NextEducational Resourceschevron-right](https://clanker.gitbook.io/clanker-documentation/general/educational-resources) Last updated 7 months ago * [August 7, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#august-7-2025) * [August 6, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#august-6-2025) * [July 14, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#july-14-2025) * [gArbitrum](https://clanker.gitbook.io/clanker-documentation/changelog#garbitrum) * [July 8, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#july-8-2025) * [Auctions](https://clanker.gitbook.io/clanker-documentation/changelog#auctions) * [Clanker.world](https://clanker.gitbook.io/clanker-documentation/changelog#clanker.world) * [@clanker on Farcaster](https://clanker.gitbook.io/clanker-documentation/changelog#clanker-on-farcaster) * [SDK](https://clanker.gitbook.io/clanker-documentation/changelog#sdk) * [API](https://clanker.gitbook.io/clanker-documentation/changelog#api) * [May 9, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#may-9-2025) * [gmonad](https://clanker.gitbook.io/clanker-documentation/changelog#gmonad) * [April 21, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#april-21-2025) * [Configurable Starting Market Caps](https://clanker.gitbook.io/clanker-documentation/changelog#configurable-starting-market-caps) * [April 17, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#april-17-2025) * [Indexing All Clanker Tokens](https://clanker.gitbook.io/clanker-documentation/changelog#indexing-all-clanker-tokens) * [Frontend updates (clanker.world)](https://clanker.gitbook.io/clanker-documentation/changelog#frontend-updates-clanker.world) * [API updates](https://clanker.gitbook.io/clanker-documentation/changelog#api-updates) * [March 18, 2025](https://clanker.gitbook.io/clanker-documentation/changelog#march-18-2025) * [New v0.3.1 Contracts](https://clanker.gitbook.io/clanker-documentation/changelog#new-v0.3.1-contracts) * [Deprecations](https://clanker.gitbook.io/clanker-documentation/changelog#deprecations) sun-brightdesktopmoon sun-brightdesktopmoon --- # Token Deployments | Clanker Documentation circle-check **Live**: The below outlines instructions for deployments on Clanker v4.0.0 that are now available across all Clanker platforms. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments#general-token-deployment-info-clanker-v4.0.0) General Token Deployment Info (Clanker v4.0.0) ![](https://clanker.gitbook.io/clanker-documentation/~gitbook/image?url=https%3A%2F%2F3915497305-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fmb3xJRvIg7xvUwDkNt7y%252Fuploads%252Fz1K52HOjJWHQP35j3zdV%252Fimage.png%3Falt%3Dmedia%26token%3D7b7b84b3-140a-4934-89aa-d5b21d1572ff&width=768&dpr=3&quality=100&sign=fd273171&sv=2) * ERC-20 tokens with a total supply of 100 billion tokens. * Tokens are not mintable post-deployment, so the max supply will always be 100 billion. * Tokens are burnable using the `burn()` function on the token contract. * Up to 90% of the total supply may be allocated to Clanker extensions. Extensions allow for token creators to allocate tokens for uses other than supplying liquidity in the new token's Uniswap v4 pool. The current list of extensions: * Vault: lock up / vest tokens for a configurable period of time (7 day minimum lockup). * Creator Buy / Dev Buy: spend ETH to execute a token swap within the deployment transaction, allowing for token creators to guarantee that they are able to make the first purchase of tokens from the initial pool. * Airdrop: airdrop tokens to a list of recipients to then claim with configurable lockup / vesting periods (1 day minimum lockup). * The remaining tokens (up to 100% of the total supply if no extensions are used) are then allocated to up to 7 liquidity positions and placed into a Uniswap v4 pool for trading. * When a new token is created, there's a brief "auction period" before normal trading opens to everyone. This auction is designed to capture value from MEV bots (sophisticated trading bots that try to profit from new token launches) and redirect some of the value back to the token's creator. * Normal trading starts after 5 rounds of the auction have completed (roughly 22 seconds post token deployment) or immediately after a round of the auction that has no bidders. The maximum delay before normal trading can start is at block _n+11_. * For additional detail, please refer to the [ClankerSniperAuctionV0](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) documentation. circle-info The Airdrop extension contract is live and will soon be supported on the clanker.world UI. [PreviousFAQchevron-left](https://clanker.gitbook.io/clanker-documentation/general/faq) [NextFarcaster Bot Deploymentschevron-right](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Educational Resources | Clanker Documentation circle-info As a general rule of thumb: whenever you launch a token, it's important to set clear expectations with your community, traders, and teammates. Underpromise and overdeliver. Steer clear of promising future profits and consult professional legal advice. [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#token-pairings) Token Pairings ---------------------------------------------------------------------------------------------------------------------------- Clanker tokens can be paired with any ERC-20, although we suggest using a token with deep liquidity for optimal trading. Here's an example of deploying a clanker paired with another clanker token: [https://github.com/clanker-devco/clanker-sdk/blob/main/examples/v4/customPair.tsarrow-up-right](https://github.com/clanker-devco/clanker-sdk/blob/main/examples/v4/customPair.ts) #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#pairing-with-usdc) Pairing with USDC PROS: * token price won't fluctuate in dollar value based on the price of the underlying asset * cleaner in dashboards, analytics, marketing, and usually people refer to coin market caps in dollar amounts * taxes CONS: * swaps can require multiple pool hops (eth=>USDC=>TOKEN) which can increase txn fees per swap * on some chains, a stablecoin may have shallower liquidity compared to the wrapped native token * isolates the non-USDC familiar users and countries whose primary currency isn't USD #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#pairing-with-weth-or-wrapped-native-gas-token) Pairing with WETH (or wrapped native gas token) PROS: * dexes pick up WETH pools easier in general * best composability with DEX aggregators, lending protocols, trading bots WETH CONS: * double volatility (token/eth x eth/usd) * market cap is seldomly referred to in WETH terms * price charts can be misleading as the default y-axis is usually dollar based (see attached images) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#when-to-use-usdc-or-weth) When to use USDC or WETH? Use USDC for consumer app tokens, stable yield / RWAs, treasury protocols, and maybe governance tokens use WETH for defi-native projects / infra tokens, memes, speculative tokens that are built to bounce up and down [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#episode-1-clanker-101) Episode 1: Clanker 101 ------------------------------------------------------------------------------------------------------------------------------------------- Full episode [HEREarrow-up-right](https://x.com/lindaxie/status/1983625447608086843) which covers: 1. what is Clanker? 2. how to launch a token 3. fees + token management + adding liquidity 4. deployment configurations (static vs dynamic fee, reward recipients, creator vault, dev buy, airdrops) 5. best practices + more! [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#episode-2-lp-management) Episode 2: LP Management ----------------------------------------------------------------------------------------------------------------------------------------------- Full episode [HEREarrow-up-right](https://x.com/lindaxie/status/2000997037802971363) which covers: * LP fundamentals, strategies & tradeoffs * common LP mistakes * starting market cap * sniper tax mechanics * Clanker LP position simulator * walkthrough of adding & removing liquidity [hashtag](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#lp-position-simulator) LP position simulator: ------------------------------------------------------------------------------------------------------------------------------------------- * Simulate LP positions, market cap changes based on buys and sells, and simulate supply purchased through dev buys at various starting market caps: [https://clanker.world/lp-simulatorarrow-up-right](https://clanker.world/lp-simulator) [PreviousChangelogchevron-left](https://clanker.gitbook.io/clanker-documentation/changelog) [NextFAQchevron-right](https://clanker.gitbook.io/clanker-documentation/general/faq) Last updated 6 days ago * [Token Pairings](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#token-pairings) * [When to use USDC or WETH?](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#when-to-use-usdc-or-weth) * [Episode 1: Clanker 101](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#episode-1-clanker-101) * [Episode 2: LP Management](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#episode-2-lp-management) * [LP position simulator:](https://clanker.gitbook.io/clanker-documentation/general/educational-resources#lp-position-simulator) sun-brightdesktopmoon sun-brightdesktopmoon --- # Legacy Fee Claims | Clanker Documentation Legacy fee claims from the protocol side can be claimed using this example [herearrow-up-right](https://github.com/clanker-devco/clanker-sdk/tree/main/examples/legacy) OR on the token admin pages: **clanker(.)world/\[TOKEN\_ADDRESS\]/admin** [PreviousClanker.world Warning Tagschevron-left](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags) [NextQuick Startchevron-right](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start) Last updated 6 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Creator Rewards & Fees | Clanker Documentation #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/creator-rewards-and-fees#creator-rewards) Creator Rewards Token creators earn rewards based on trading volume of their created tokens. Upon deployment of a standard Clanker token, the full supply of the token is deposited into a single-sided Uniswap v4 LP (the "initial LP"). When traders buy and sell tokens in this pool, the initial LP accrues fee on each swap. If token holders deposit their own LPs from tokens they hold or initiate new trading pools, token creators will not earn any rewards on these positions / pools. Deployments through the clanker.world frontend receive all of the initial LP fees as creator rewards. For tokens created through the @clanker bot on Farcaster, token creators earn 80% of the rewards. Creator rewards can be claimed on the Admin page of the token on [clanker.worldarrow-up-right](https://www.clanker.world/) . The admin page can be found at `https://www.clanker.world/clanker/TOKEN_CONTRACT_ADDRESS_HERE/admin` . Please see the [FAQ](https://clanker.gitbook.io/clanker-documentation/general/faq) for detail on finding Token Info pages and collecting creator rewards. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/creator-rewards-and-fees#clanker-fees) Clanker Fees The Clanker fee is fixed at 20% of LP fees that are collected at the pool level in addition to LP fees. [PreviousAlternative Interface Deploymentschevron-left](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/alternative-interface-deployments) [NextClanker.world Warning Tagschevron-right](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Public | Clanker Documentation [Get Paginated List of Tokenschevron-right](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens) [Get Tokens by Creatorchevron-right](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator) [PreviousQuick Startchevron-left](https://clanker.gitbook.io/clanker-documentation/quick-start) [NextGet Paginated List of Tokenschevron-right](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # FAQ | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#token-deployments) Token Deployments chevron-rightWhat networks / chains does Clanker support?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#what-networks-chains-does-clanker-support) Please see [Deployed Contracts](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts) for a full list of contract deployments. chevron-rightHow can I find the Token Info page for a Clanker token that I deployed?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#how-can-i-find-the-token-info-page-for-a-clanker-token-that-i-deployed) There are a handful of ways that you can find the Token Info page of Clanker tokens that you've deployed. **Via desktop** On the [Clanker token homepagearrow-up-right](https://www.clanker.world/clanker) , you can: 1. Search for tokens by token name, ticker, or Farcaster username of the creator. 2. Use the `Connect` button on the bottom left of the page to connect the wallet of your verified address, then press `my deployed clankers`. 3. Visit the [deployed by FIDarrow-up-right](https://www.clanker.world/clanker/deployed-by-fid) page and type in your FID. See [How do I find my Farcaster verified address / custody address / FID?](https://clanker.gitbook.io/clanker-documentation/general/faq#how-do-i-find-my-farcaster-verified-address-custody-address-fid) for guidance on finding your FID. **Via Warpcast mobile** You can click on any frame that Clanker responds with (go to `Casts + Replies` of @clanker) and select your profile on the bottom left. Press `my deployed clankers` to view a list of all Clanker tokens you have created. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#creator-rewards) Creator Rewards chevron-rightHow do I claim creator rewards?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#how-do-i-claim-creator-rewards) Visit the token admin page `https://www.clanker.world/clanker/[TOKEN CONTRACT ADDRESS]/admin` , connect a wallet, and select `Claim Rewards`. This will prompt you to execute a transaction that will distribute creator rewards. circle-info Anyone can initiate the claim process for any token. Creator rewards will then be distributed to the token creator - not the wallet initiating the claim process. chevron-rightWhat does Creator Earnings on the clanker.world Token Info page mean?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#what-does-creator-earnings-on-the-clanker.world-token-info-page-mean) The Creator Earnings figure is an estimate of the total rewards that a token creator has accrued in the past 30 days. Please note that this is only an **estimate** and might not accurately reflect the current market value of the tokens included in creator rewards. Unclaimed rewards represent the current balance of unclaimed rewards, not a 30 day estimate. chevron-rightHow can I check the balance of unclaimed rewards for a token?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#how-can-i-check-the-balance-of-unclaimed-rewards-for-a-token) Visit the bottom of the token info page to see an estimate of unclaimed rewards. chevron-rightWhy is my unclaimed rewards balance lower than expected?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#why-is-my-unclaimed-rewards-balance-lower-than-expected) Anyone can initiate the payout of creator rewards, so you might have already received creator rewards for tokens you deployed even without claiming the rewards yourself. chevron-rightHow can I determine the wallet address that creator rewards will be sent to?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#how-can-i-determine-the-wallet-address-that-creator-rewards-will-be-sent-to) For tokens created directly through interaction with the @clanker bot on Farcaster, the address set as the initial recipient for creator rewards is either: 1. Your latest Farcaster verified address 2. Your Farcaster custody address (if you do not have any Farcaster verified addresses) See [FAQ](https://clanker.gitbook.io/clanker-documentation/general/faq#how-do-i-find-my-farcaster-verified-address-custody-address) for guidance on finding your creator rewards address. chevron-rightHow do I find my Farcaster verified address / custody address / FID?[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#how-do-i-find-my-farcaster-verified-address-custody-address-fid) 1. Using Warpcast on desktop, go to your `Profile` and on the top right, press the vertical ellipsis button and select `About`. On the Warpcast mobile app, select the `Information` icon on the top right of your `Profile`. ![](https://clanker.gitbook.io/clanker-documentation/~gitbook/image?url=https%3A%2F%2F3915497305-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fmb3xJRvIg7xvUwDkNt7y%252Fuploads%252FaYMCgzx91ur6v3g0Mhcb%252Fimage.png%3Falt%3Dmedia%26token%3D6cfda7d8-ed53-4b1d-b958-ccdc5e3cfdea&width=768&dpr=3&quality=100&sign=bde4494b&sv=2) 1. If you have connected an Ethereum wallet, your verified address is the bottom of the list of `Connected Ethereum Wallets`. In the below example, there is only one wallet connected, so that is the verified address. ![](https://clanker.gitbook.io/clanker-documentation/~gitbook/image?url=https%3A%2F%2F3915497305-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fmb3xJRvIg7xvUwDkNt7y%252Fuploads%252FID6KxqV2xAr6V01EXIvE%252Fimage.png%3Falt%3Dmedia%26token%3Db1c3636e-4a86-47a0-a64e-be2aa4c1c579&width=768&dpr=3&quality=100&sign=4d818454&sv=2) chevron-rightClaim X token deployment fees & transfer smart wallet balances to another account[hashtag](https://clanker.gitbook.io/clanker-documentation/general/faq#claim-x-token-deployment-fees-and-transfer-smart-wallet-balances-to-another-account) Watch this video here: [https://x.com/JackDishman/status/2021651772016931161arrow-up-right](https://x.com/JackDishman/status/2021651772016931161) [PreviousEducational Resourceschevron-left](https://clanker.gitbook.io/clanker-documentation/general/educational-resources) [NextToken Deploymentschevron-right](https://clanker.gitbook.io/clanker-documentation/general/token-deployments) Last updated 6 days ago * [Token Deployments](https://clanker.gitbook.io/clanker-documentation/general/faq#token-deployments) * [Creator Rewards](https://clanker.gitbook.io/clanker-documentation/general/faq#creator-rewards) sun-brightdesktopmoon sun-brightdesktopmoon --- # Alternative Interface Deployments | Clanker Documentation Alternative interfaces that deploy tokens through the Clanker SDK have additional customizability and may set a variety of different parameters. Please refer to the documentation of each interface to better understand their deployment parameters. This includes but is not limited to custom: * Creator rewards splits * Starting market cap * Quote token pairs * Liquidity curves via placing multiple LP positions * Vaulting * Airdrops * Creator Buy / Dev Buy [PreviousPreclank Deploymentschevron-left](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/preclank-deployments) [NextCreator Rewards & Feeschevron-right](https://clanker.gitbook.io/clanker-documentation/general/creator-rewards-and-fees) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Clanker.world Warning Tags | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#token-warning-tags) Token Warning Tags When browsing tokens on clanker.world, you may see warning tags that indicate potential issues or unusual configurations. These warnings don't prevent tokens from being displayed, but they help users make informed decisions. The same warning tags are also provided when fetching info about specific tokens via the API. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#warning-types) Warning Types #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#unusual_tick) **UNUSUAL\_TICK** **What it means** The token's initial price doesn't match expected market cap thresholds or pricing standards. **Why you see this** * For ETH-paired tokens: The calculated market cap is below ~1 ETH at deployment. * For [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) : The starting tick of the pool deviates from the initial tick supported via API deployments. **Should I be concerned?** This may indicate an incorrectly configured deployment or unusual starting market caps. Proceed with caution and verify the token's intended pricing. * * * #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#unusual_pair_address) **UNUSUAL\_PAIR\_ADDRESS** **What it means** The token is paired with a quote token that is not on the list of [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) . **Why you see this** The token isn't paired with one of the [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) . **Should I be concerned?** Unusual pairings might indicate experimental of non-standard liquidity setups. If the paired token itself doesn't have deep onchain liquidity, the new token might not be able to be traded without directly having the paired token. Proceed with caution and verify the safety of the paired token. * * * #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#missing_pool_config) **MISSING\_POOL\_CONFIG** **What it means** Legacy pool configuration data is missing. **Why you see this** The token's liquidity pool data couldn't be properly retrieved. **Should I be concerned?** These are primarily for legacy (v3.1.0 and previous) tokens. If v4.0.0+ tokens show this warning, proceed with caution as the starting market cap and liquidity configuration might not be known. * * * #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#unusual_positions) **UNUSUAL\_POSITIONS** **What it means** The token's liquidity positions don't match standard configurations. **Why you see this** The token's liquidity positions do not conform to either the preconfigured `Standard` or `Project` liquidity setups. **Should I be concerned?** While not necessarily dangerous, unusual positions might indicate experimental liquidity distributions or ranges that are not as straightforward. Proceed with caution - users may also validate event logs for where the initial liquidity was placed during the token creation process. * * * Warning tags serve as automated assessments and to not perfectly capture tokens that are "safe". Always conduct your own research before making trading decisions. [PreviousCreator Rewards & Feeschevron-left](https://clanker.gitbook.io/clanker-documentation/general/creator-rewards-and-fees) [NextLegacy Fee Claimschevron-right](https://clanker.gitbook.io/clanker-documentation/general/legacy-fee-claims) Last updated 8 months ago * [Token Warning Tags](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#token-warning-tags) * [Warning Types](https://clanker.gitbook.io/clanker-documentation/general/clanker.world-warning-tags#warning-types) sun-brightdesktopmoon sun-brightdesktopmoon --- # Farcaster Bot Deployments | Clanker Documentation circle-info @clanker on Farcaster deploys tokens on Base by default. To deploy a token on other supported chains, please read below for the chain's trigger phrases. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments#create-a-token-on-base-default) Create a Token on Base (Default) New Clanker tokens created via the @clanker bot on Farcaster go through the following deployment process. 1. User asks @clanker on Farcaster to deploy a token. The user has the option to: 1. Specify to reserve a portion of the supply in a vault. The maximum amount to vault is 30% and the default is 30% if not specified. 2. Specify how long, in days, to lock the tokens in the vault for. The minimum vault time is 31 days and the default is 31 days if not specified. 2. A new ERC-20 token (the base token) is created with a total supply of 100 billion (100,000,000,000). The token isn't mintable after this step, so the max supply will always be 100 billion tokens. 3. If the user requests to allocate a portion of the supply to the creator vault, that percentage of the supply is then sent to the creator vault. 4. A new Uniswap V4 pool is initiated with the base token and quote token (WETH, by default). The entire total supply of the token, less the portion of the supply allocated to the vault, is deposited into the pool as single-sided liquidity. The starting market cap is set to 10 WETH. 5. The LP NFTs that are created during step 4 are sent to a Clanker LP Locker. The LP Locker has no withdraw function, so LP NFTs that are deposited into it can never be withdrawn and are effectively locked forever. See [Deployed Contracts](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts) and [Audits](https://clanker.gitbook.io/clanker-documentation/references/audits) for more info. circle-info * Farcaster bot deployments create tokens in pools with Clanker's recommended fee and liquidity configurations. * Users will receive 80% of LP fees as creator rewards for Farcaster bot deployments. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments#create-a-token-on-arbitrum) Create a Token on Arbitrum Mention any of the following phrases (not case sensitive) in your cast in addition to following the default deployment instructions to deploy a token on Arbitrum: * arbitrum * garbitrum * arbitrugm ### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments#create-a-token-on-monad-testnet) Create a Token on Monad Testnet Mention any of the following phrases (not case sensitive) in your cast in addition to following the default deployment instructions to deploy a token on Monad Testnet: * monad * gmonad [PreviousToken Deploymentschevron-left](https://clanker.gitbook.io/clanker-documentation/general/token-deployments) [NextClanker.world Deploymentschevron-right](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments) Last updated 7 months ago * [Create a Token on Base (Default)](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments#create-a-token-on-base-default) * [Create a Token on Arbitrum](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments#create-a-token-on-arbitrum) * [Create a Token on Monad Testnet](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments#create-a-token-on-monad-testnet) sun-brightdesktopmoon sun-brightdesktopmoon --- # Preclank Deployments | Clanker Documentation circle-check **Live**: The below outlines instructions for deployments on Clanker v4.0.0 that are now live at [clanker.world/deployarrow-up-right](https://www.clanker.world/deploy) . Users may create Clanker tokens using the clanker.world [token creation pagearrow-up-right](https://www.clanker.world/deploy) and connecting a wallet. The section below outlines the parameters are able to be configured by users. 1 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/preclank-deployments#sign-in-to-clanker.world-with-a-farcaster-account) Sign in to clanker.world with a Farcaster account Press Connect on the top right hand side of the page. If you are already signed in with another method, select the dropdown and disconnect. Then, on the Privy sign in modal, select Farcaster to sign in with Farcaster. circle-exclamation You will not be able to save / use your preclank if you do not sign in using Farcaster. 2 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/preclank-deployments#configure-the-token-creation-parameters) Configure the token creation parameters Visit the clanker.world [token creation pagearrow-up-right](https://www.clanker.world/deploy) , connect a wallet, and configure the token deployment. The default rewards recipient and creator vault beneficiary will be set to the wallet that is connected to the token creation page, not the primary Farcaster wallet of the account that triggers the preclank. For more info on token creation parameters, please refer to [Clanker.world Deployments](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments) . circle-info Creator Buy (Dev Buy) features are not yet supported for preclank deployments but are on the short-term roadmap. 3 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/preclank-deployments#enable-the-preclank-toggle-at-the-bottom-of-the-form) Enable the `Preclank` toggle at the bottom of the form Toggle on `Preclank` at the bottom of the token creation page after populating desired token configuration. Then, add a trigger phrase to the input field. Press the `Preclank` button to save the token configuration + trigger phrase. To view your saved preclanks, select `Manage Preclanks` at the top of the token creation page. 4 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/preclank-deployments#deploy-the-token-with-the-preclank-configuration) Deploy the token with the preclank configuration To deploy a token with the preclank configuration, create a cast on Farcaster with your trigger phrase somewhere in the cast **and** tag @clanker. circle-info Trigger phrases are case sensitive and must be entered exactly as they are saved. @clanker will deploy a token with the preclank configuration and respond with a link to the token info page for the newly created token. [PreviousClanker.world Deploymentschevron-left](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments) [NextAlternative Interface Deploymentschevron-right](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/alternative-interface-deployments) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Clanker.world Deployments | Clanker Documentation circle-check **Live**: The below outlines instructions for deployments on Clanker v4.0.0 that are now live at [clanker.world/deployarrow-up-right](https://www.clanker.world/deploy) . Users may create Clanker tokens using the clanker.world [token creation pagearrow-up-right](https://www.clanker.world/deploy) and connecting a wallet. The section below outlines the parameters are able to be configured by users. 1 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#basic-token-info) Basic Token Info circle-info Required, minimum metadata for token creation. * Network (chain) * Name * Symbol / ticker * Image 2 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#token-metadata) Token Metadata circle-info Optional, additional metadata fields that are both onchain and mutable. * Description * Telegram link * Website link * X (Twitter) link * Farcaster link 3 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#fee-configuration) Fee Configuration circle-info Optional, preset fee configurations for the initial token pool. Defaults to a dynamic fee. * `Recommended`, fixed % base fee + variable fee based on the pool's volatility * `Legacy`, fixed % fees on trades 4 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#reward-recipients) Reward Recipients circle-info Optional, set additional reward recipients for trading fees from the pool. Defaults to 100% of rewards going to the User's connected wallet, accrued in the paired token. For each Reward Recipient, the following must be set: * **Admin Address**, address that has the ability to override the current Reward Recipient to a new address. * **Reward Percentage**, percentage of total rewards allocated to the Reward Recipient. * **Reward Type**, type of tokens that the user will receive as rewards. The token creator may configure this in the token creation process, but the Token Admin may change this at any time post-deployment. * `Both`, accrue rewards in both the newly created Clanker token and the token it is paired against * `Clanker`, accrue rewards entirely in the newly created Clanker token * `Paired`, accrue rewards entirely in the paired token (typically $WETH) 5 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#pool-configuration) Pool Configuration circle-info Optional, choose from a preset liquidity configuration. Defaults to the `Standard` pool type. * **Pool Type**, preset liquidity configurations (via LP position placements) * `Recommended`, optimized liquidity layout utilizing multiple LP positions. The current starting market cap for this configuration is fixed at `10 ETH`. * `Legacy`, all liquidity is placed in one LP position with a configurable starting market cap. * **Starting Market Cap in ETH**, configure the starting market cap for `Standard` pools 6 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#creator-vault) Creator Vault circle-info Optional, set aside tokens into a vault with configurable lockup and vesting periods. Defaults to a 30 day lockup with instant vesting. * **Vault Percentage**, percent of total token supply to allocate to the vault. * The token creator wallet is the default beneficiary of the tokens; however, the token creator may set a new beneficiary post-deployment. * **Lockup Period**, day when the lockup ends and vesting begins. There is a 7 day minimum that is enforced at the contract level. * **Vesting Period**, day when vesting ends. Vesting occurs linearly between the Lockup Period and Vesting Period. * Once vesting begins, anyone can call the function on the vault to distribute the tokens. Irrespective of who calls the distribution function, the tokens will be sent to the current beneficiary (the token creator by default, unless changed post-deployment). 7 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/clanker.world-deployments#creator-buy-dev-buy) Creator Buy (Dev Buy) circle-info Optional, spend ETH to guarantee the first swap on the newly created token. There are no upper / lower limits to the amount of ETH that may be used for a Creator Buy. [PreviousFarcaster Bot Deploymentschevron-left](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/farcaster-bot-deployments) [NextPreclank Deploymentschevron-right](https://clanker.gitbook.io/clanker-documentation/general/token-deployments/preclank-deployments) Last updated 7 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # v3.1.0 | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#quick-start) Quick Start Copy npm install clanker-sdk ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#basic-usage) Basic Usage Copy import { Clanker } from 'clanker-sdk'; import { createWalletClient, createPublicClient, http } from 'viem'; // Initialize SDK const clanker = new Clanker({ wallet: walletClient, publicClient, factoryAddress: FACTORY_ADDRESS }); // Deploy a token const tokenAddress = await clanker.deployToken({ name: "MyToken", symbol: "TOKEN", image: "ipfs://...", metadata: { description: "My awesome token", socialMediaUrls: ["https://twitter.com/mytoken"], auditUrls: [] }, pool: { quoteToken: "0x4200000000000000000000000000000000000006", // WETH initialMarketCap: "1" // 1 WETH } }); ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#advanced-configuration) Advanced Configuration #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#vesting-vault) Vesting Vault Add a vesting schedule for token distribution: #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#reward-distribution) Reward Distribution Configure creator and interface rewards (Clanker retains 20%): #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#initial-dev-buy) Initial Dev Buy Configure an initial buy to provide liquidity: ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#complete-example) Complete Example [Previousv4.0.0chevron-left](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0) [NextCLIchevron-right](https://clanker.gitbook.io/clanker-documentation/sdk/cli) Last updated 8 months ago * [Quick Start](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#quick-start) * [Basic Usage](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#basic-usage) * [Advanced Configuration](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#advanced-configuration) * [Complete Example](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0#complete-example) sun-brightdesktopmoon Copy const config = { // ... basic config ... vault: { percentage: 20, // 20% of tokens durationInDays: 90 // 90-day vesting } }; Copy const config = { // ... basic config ... rewardsConfig: { creatorReward: 80, // 80% max to creator, 0% to interface creatorAdmin: "0x...", // Optional: Custom admin address creatorRewardRecipient: "0x..." // Optional: Custom reward recipient } }; Copy const config = { // ... basic config ... devBuy: { ethAmount: "0.1", // Buy 0.1 ETH worth maxSlippage: 5 // 5% max slippage } }; Copy const tokenAddress = await clanker.deployToken({ name: "Awesome Token", symbol: "AWESOME", image: "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi", metadata: { description: "The most awesome token on Base", socialMediaUrls: [\ "https://twitter.com/awesome",\ "https://t.me/awesome"\ ], auditUrls: [] }, context: { interface: "My dApp", platform: "Awesome Platform", messageId: "deployment-1", id: "awesome-token-1" }, vault: { percentage: 20, durationInDays: 90 }, pool: { quoteToken: "0x4200000000000000000000000000000000000006", initialMarketCap: "1" }, devBuy: { ethAmount: "0.1", maxSlippage: 5 }, rewardsConfig: { creatorReward: 80, creatorAdmin: "0x...", creatorRewardRecipient: "0x..." } }); console.log(`Token deployed at: ${tokenAddress}`); console.log(`View on Clanker World: https://clanker.world/clanker/${tokenAddress}`); sun-brightdesktopmoon --- # Quick Start | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#quick-start) Quick Start Copy npm install clanker-sdk ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#overview) Overview The Clanker SDK enables developers to easily create and deploy tokens with built-in liquidity pools, vesting vaults, and customizable reward distributions. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#examples) Examples A full list of SDK examples can be found [HEREarrow-up-right](https://github.com/clanker-devco/clanker-sdk/tree/main/examples/v4) . ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#core-features) Core Features * 🚀 One-click token deployment * 💧 Automatic liquidity pool creation * 🔒 Optional vesting vaults * 💰 Configurable reward distributions * 🎨 Built-in metadata and social links ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#user-guides) User Guides * [v4.0.0](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0) * [v3.1.0](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0) * [CLI](https://clanker.gitbook.io/clanker-documentation/sdk/cli) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#resources) Resources * [Clanker Worldarrow-up-right](https://clanker.world/) * [GitHub Repositoryarrow-up-right](https://github.com/clanker-devco/clanker-sdk) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#mini-app-example) Mini App Example!! * [Deploy a Clanker in a Mini Apparrow-up-right](https://clanker-sdk-minikit.vercel.app/) * [Repositoryarrow-up-right](https://github.com/mugrebot/minikitclankerapp/tree/master/testing-stuff) The SDK and quickstart guide are available on the npm registry: [https://www.npmjs.com/package/clanker-sdkwww.npmjs.comchevron-right](https://www.npmjs.com/package/clanker-sdk) [PreviousLegacy Fee Claimschevron-left](https://clanker.gitbook.io/clanker-documentation/general/legacy-fee-claims) [Nextv4.0.0chevron-right](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0) Last updated 6 days ago * [Quick Start](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#quick-start) * [Overview](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#overview) * [Examples](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#examples) * [Core Features](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#core-features) * [User Guides](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#user-guides) * [Resources](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#resources) * [Mini App Example!!](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start#mini-app-example) sun-brightdesktopmoon sun-brightdesktopmoon --- # Quick Start | Clanker Documentation #### [hashtag](https://clanker.gitbook.io/clanker-documentation/quick-start#fetching-clanker-data) Fetching Clanker Data Get started by checking out the [Public](https://clanker.gitbook.io/clanker-documentation/public) endpoints. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/quick-start#deploying-clanker-tokens) Deploying Clanker Tokens We highly encourage users to use our [v4.0.0](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0) SDK for deploying tokens. Currently, full API access is granted on a case-by-case basis to interested platforms. To request access, please contact us [herearrow-up-right](https://www.clanker.world/contact-us) . We'll evaluate each request individually as we carefully scale our platform access. [PreviousCLIchevron-left](https://clanker.gitbook.io/clanker-documentation/sdk/cli) [NextPublicchevron-right](https://clanker.gitbook.io/clanker-documentation/public) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Get Paginated List of Tokens | Clanker Documentation **Endpoint:** `GET https://www.clanker.world/api/tokens` * * * ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#query-parameters) Query Parameters Parameter Type Default Description `q` string undefined Search query for token name or symbol `fid` number undefined Filter by a single Farcaster user ID (e.g., `fid=12345`) `fids` string (comma-separated numbers) undefined Filter by multiple Farcaster user IDs (e.g., `fids=123,456,789`) `pairAddress` string undefined Filter by paired token contract address `sort` string `'desc'` Sort order: `asc` (oldest first) or `desc` (newest first) `sortBy` string undefined Sort field: `market-cap`, `tx-h24`, `price-percent-h24`, `price-percent-h1`, or `deployed-at` `socialInterface` string undefined Filter by social interface (e.g., `clanker.world`, `Bankr`) `limit` number 10 Number of results to return (max 20) `cursor` string undefined Cursor for efficient pagination `includeUser` boolean false Include creator profile data (avatar, name, bio, etc.) `includeMarket` boolean false Include real-time market data (market cap, price change, volume) `startDate` number undefined Filter tokens created after this Unix timestamp `chainId` number undefined Filter by chain ID (e.g., `8453` for Base) `champagne` boolean false Filter to show only champagne tokens * * * ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#example-requests) Example Requests #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#search-by-token-name-symbol) Search by token name/symbol #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#search-by-single-fid-creator) Search by single FID (creator) #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#search-by-fid-with-market-data) Search by FID with market data #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#search-by-contract-address) Search by contract address * * * ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#example-response) Example Response * * * ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#response-fields) Response Fields Field Description `data` Array of token objects `total` Total number of tokens matching the query `cursor` Pagination cursor for next page (use in subsequent requests) `tokensDeployed` Total number of tokens deployed (useful when filtering by creator FID) * * * ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#token-object-fields) Token Object Fields Field Description `contract_address` Token contract address `name` Token name `symbol` Token symbol `description` Token description `img_url` Token image URL `type` Token type (e.g., `clanker_v4`, `clanker_v3_1`) `pair` Trading pair (e.g., `WETH`, `DEGEN`) `chain_id` Chain ID (e.g., `8453` for Base) `deployed_at` Deployment timestamp `tx_hash` Deployment transaction hash `pool_address` Uniswap pool address `msg_sender` Address that deployed the token `factory_address` Clanker factory contract address `locker_address` LP locker contract address `social_context` Social media context (platform, messageId, etc.) `extensions` Additional token features (fees, vault, airdrop, etc.) `warnings` Array of warnings about the token configuration `related.user` Creator profile data (only if `includeUser=true`) `related.market` Market data (only if `includeMarket=true`) * * * ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#pagination-tips) Pagination Tips * Default limit is 10, maximum is 20 * Search is case-insensitive and matches both token names and symbols * Use the `cursor` from the response to fetch the next page of results * When searching by `fid`, `tokensDeployed` gives you the total count of tokens created by that user [PreviousPublicchevron-left](https://clanker.gitbook.io/clanker-documentation/public) [NextGet Tokens by Creatorchevron-right](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator) Last updated 2 months ago * [Query Parameters](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#query-parameters) * [Example Requests](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#example-requests) * [Example Response](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#example-response) * [Response Fields](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#response-fields) * [Token Object Fields](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#token-object-fields) * [Pagination Tips](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens#pagination-tips) sun-brightdesktopmoon Copy curl "https://www.clanker.world/api/tokens?q=EXAMPLE" Copy curl "https://www.clanker.world/api/tokens?fid=12345" Copy curl "https://www.clanker.world/api/tokens?fid=12345&includeMarket=true&sortBy=market-cap&sort=desc" Copy curl "https://www.clanker.world/api/tokens?q=0x525358b364b9bb38227054affdc37cecdd516b81" Copy { "data": [\ {\ "id": 12345,\ "created_at": "2024-12-15T14:30:00",\ "last_indexed": "2024-12-15T14:32:17.303",\ "tx_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",\ "contract_address": "0xAbCdEf1234567890AbCdEf1234567890AbCdEf12",\ "name": "Example Token",\ "symbol": "EXAMPLE",\ "description": "This is an example token for demonstration purposes",\ "supply": "100000000000000000000000000000",\ "img_url": "https://example.com/images/token-logo.png",\ "pool_address": "0x9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba",\ "type": "clanker_v4",\ "pair": "WETH",\ "chain_id": 8453,\ "metadata": {\ "auditUrls": [],\ "description": "This is an example token for demonstration purposes",\ "socialMediaUrls": [\ {\ "platform": "twitter",\ "url": "https://twitter.com/example_token"\ }\ ]\ },\ "deployed_at": "2024-12-15T14:30:00",\ "msg_sender": "0x1111111111111111111111111111111111111111",\ "factory_address": "0x2222222222222222222222222222222222222222",\ "locker_address": "0x3333333333333333333333333333333333333333",\ "position_id": "0",\ "warnings": [],\ "pool_config": {\ "pairedToken": "0x4444444444444444444444444444444444444444",\ "tickIfToken0IsNewToken": -230400\ }\ }\ ], "total": 1, "cursor": "eyJpZCI6IjIwMjQtMTItMTVUMTQ6MzA6MDAifQ==", "tokensDeployed": 1 } sun-brightdesktopmoon --- # CLI | Clanker Documentation circle-info Clanker's CLI currently only supports v3 deployments ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/cli#quick-start) Quick Start Copy npm install clanker-sdk ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/cli#cli-usage) CLI Usage For rapid development, use our CLI: Copy # Set up environment echo "PRIVATE_KEY=your_private_key_here FACTORY_ADDRESS=factory_address_here" > .env # Create a token npx clanker-sdk --create ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/cli#cli-commands) CLI Commands Copy npx clanker-sdk --create # Env Example # Required: Your private key (with 0x prefix) PRIVATE_KEY=0x123... # Required: The Clanker factory contract address FACTORY_ADDRESS="0x2A787b2362021cC3eEa3C24C4748a6cD5B687382" # Optional: Custom RPC URL (if not provided, will use default Base RPC, we suggest using something other than default!) RPC_URL=https://... [Previousv3.1.0chevron-left](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0) [NextQuick Startchevron-right](https://clanker.gitbook.io/clanker-documentation/quick-start) Last updated 8 months ago * [Quick Start](https://clanker.gitbook.io/clanker-documentation/sdk/cli#quick-start) * [CLI Usage](https://clanker.gitbook.io/clanker-documentation/sdk/cli#cli-usage) * [CLI Commands](https://clanker.gitbook.io/clanker-documentation/sdk/cli#cli-commands) sun-brightdesktopmoon sun-brightdesktopmoon --- # Get Tokens by Creator | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#endpoint) Endpoint Copy GET https://clanker.world/api/search-creator ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#query-parameters) Query Parameters Parameter Type Required Default Description `q` string Yes \- Search query: Farcaster username (e.g., `dish`) or wallet address (0x...) `limit` integer No 20 Number of results per page (1-50) `offset` integer No 0 Pagination offset for loading more results `sort` string No `desc` Sort order by deployment date: `asc` (oldest first) or `desc` (newest first) `trustedOnly` boolean No false When `true`, only returns verified/trusted tokens ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#response) Response #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#success-response-200-ok) Success Response (200 OK) Copy { "tokens": [\ {\ "contract_address": "0x...",\ "name": "Token Name",\ "symbol": "TKN",\ "img_url": "https://...",\ "chain_id": 8453,\ "deployed_at": "2024-01-15T10:30:00.000Z",\ "created_at": "2024-01-15T10:30:00.000Z",\ "msg_sender": "0x...",\ "social_context": {\ "platform": "farcaster",\ "id": "12345"\ },\ "related": {\ "market": {\ "marketCap": 50000,\ "price": 0.0001\ }\ },\ "trustStatus": {\ "isTrustedDeployer": false,\ "isTrustedClanker": false,\ "fidMatchesDeployer": true,\ "verifiedAddresses": ["0x..."]\ }\ }\ ], "user": { "fid": 12345, "username": "alice", "displayName": "Alice", "pfpUrl": "https://...", "verifiedAddresses": ["0x..."] }, "searchedAddress": "0x...", "total": 42, "hasMore": true } #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#response-fields) Response Fields Field Type Description `tokens` array Array of token objects with trust status `user` object Farcaster user info if found (may be `undefined`) `searchedAddress` string The wallet address used for searching (may be `undefined`) `total` integer Total number of tokens matching the query (after filtering) `hasMore` boolean Whether more results are available for pagination #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#trust-status) Trust Status Each token includes a `trustStatus` object indicating verification level: Field Type Description `isTrustedDeployer` boolean Token was deployed by a known trusted deployer address `isTrustedClanker` boolean Token contract is on the allowlist `fidMatchesDeployer` boolean Creator's verified Farcaster address matches the deployer wallet `verifiedAddresses` array The token creator's verified Farcaster addresses **Trust Levels (in order of priority):** 1. **Allowlisted** - Token is on the trusted clanker allowlist 2. **Trusted Deployer** - Deployed by an official clanker deployer contract 3. **FID Verified** - Creator's Farcaster verified address matches the deployer 4. **Unverified** - None of the above (exercise caution) #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#error-responses) Error Responses **400 Bad Request** **500 Internal Server Error** ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#examples) Examples #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#search-by-farcaster-username) Search by Farcaster Username #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#search-by-wallet-address) Search by Wallet Address #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#paginated-request) Paginated Request #### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#filter-trusted-only-sorted-by-oldest) Filter Trusted Only, Sorted by Oldest ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#notes) Notes * The API searches tokens by: * Farcaster FID (from username lookup) * Deployer address (`msg_sender`) * Admin address * Results are deduplicated by contract address * Invalid `limit`/`offset` values are automatically corrected to safe defaults * Maximum 50 results per request * Results are optimized for creators with up to ~1000 tokens ### [hashtag](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#rate-limits) Rate Limits Standard API rate limits apply. Contact support for higher limits. [PreviousGet Paginated List of Tokenschevron-left](https://clanker.gitbook.io/clanker-documentation/public/get-paginated-list-of-tokens) [NextAuthenticatedchevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated) Last updated 2 months ago * [Endpoint](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#endpoint) * [Query Parameters](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#query-parameters) * [Response](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#response) * [Examples](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#examples) * [Notes](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#notes) * [Rate Limits](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator#rate-limits) sun-brightdesktopmoon Copy { "error": "Query parameter \"q\" is required" } Copy { "error": "Failed to search" } Copy curl "https://clanker.world/api/search-creator?q=dish" Copy curl "https://clanker.world/api/search-creator?q=0x1234567890abcdef1234567890abcdef12345678" Copy # First page curl "https://clanker.world/api/search-creator?q=alice&limit=20&offset=0" # Second page curl "https://clanker.world/api/search-creator?q=alice&limit=20&offset=20" Copy curl "https://clanker.world/api/search-creator?q=alice&trustedOnly=true&sort=asc" sun-brightdesktopmoon --- # Authenticated | Clanker Documentation [Deploy Token (v4.0.0)chevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0) [Get Token by Addresschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address) [Get Tokens Deployed by Addresschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address) [\[DEPRECATED\] Get Estimated Rewardschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards) [\[DEPRECATED\] Get Uncollected Feeschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-uncollected-fees) [Index Tokenchevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token) [Get Tokens by Adminchevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin) [Get Claimed Fees \[beta\]chevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta) [PreviousGet Tokens by Creatorchevron-left](https://clanker.gitbook.io/clanker-documentation/public/get-tokens-by-creator) [NextDeploy Token (v4.0.0)chevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0) sun-brightdesktopmoon sun-brightdesktopmoon --- # [DEPRECATED] Get Estimated Rewards | Clanker Documentation circle-exclamation This enpoint has been deprecated. Instead, use this SDK method to get token rewards: [https://github.com/clanker-devco/clanker-sdk/blob/main/examples/v4/getTokenRewards.tsarrow-up-right](https://github.com/clanker-devco/clanker-sdk/blob/main/examples/v4/getTokenRewards.ts) Copy GET https://www.clanker.world/api/tokens/estimate-rewards-by-pool-address ~**Headers:**~ Copy x-api-key: your_api_key ~**Query Parameters:**~ Parameter Type Description `poolAddress` string Address of the token's liquidity pool ~**Example Request:**~ Copy curl -X GET \ 'https://www.clanker.world/api/tokens/estimate-rewards-by-pool-address?poolAddress=pool_address' \ -H 'x-api-key: your_api_key' ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards#response-format) ~Response Format~ ~**Example Response:**~ Copy { "userRewards": 4051.7574064199907 } #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards#response-fields) ~Response Fields~ Field Type Description `userRewards` number Estimated rewards value in USD for the specified pool ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards#notes) ~Notes~ * ~The rewards value is returned as a floating-point number~ * ~Results are estimates and may vary from actual rewards~ * ~Values are calculated based on current prices of tokens in the pool~ [PreviousGet Tokens Deployed by Addresschevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address) [Next\[DEPRECATED\] Get Uncollected Feeschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-uncollected-fees) Last updated 14 days ago * [Response Format](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards#response-format) * [Notes](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards#notes) sun-brightdesktopmoon sun-brightdesktopmoon --- # v4.0.0 | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#examples) Examples Deployment Examples: [https://github.com/clanker-devco/clanker-sdk/tree/main/examples/v4arrow-up-right](https://github.com/clanker-devco/clanker-sdk/tree/main/examples/v4) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#quick-start) Quick Start npm bun yarn Copy npm install clanker-sdk viem Copy bun add clanker-sdk viem Copy yarn add clanker-sdk viem ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#basic-usage) Basic Usage Copy import { Clanker } from 'clanker-sdk/v4'; import { createWalletClient, createPublicClient, privateKeyToAccount, http } from 'viem'; // Viem setup const account = privateKeyToAccount(process.env.PRIVATE_KEY); const client = createPublicClient({ chain: base, transport: http() }); const wallet = createWalletClient({ account, chain: base, transport: http() }); // Initialize the SDK const clanker = new Clanker({ publicClient: client, wallet: walletClient, }); // Deploy a token const { txHash, waitForTransaction, error } = await clanker.deploy({ name: "My Token", symbol: "MTK", tokenAdmin: account.address, // Optional parameter. This will make a call to Clanker's vanity-address // service to generate a salt so the token deploys with the "b07" suffix. vanity: true, }); // The `deploy` function attempts to not throw and instead return an error // for you to decide how to handle if (error) throw error; // It also returns a function `waitForTransaction` that you may use to wait // for the full token deployment. This also may return an error, or the address // of the token on success. const { address } = await waitForTransaction(); console.log(`Deployed token to ${address}`); ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#advanced-configuration) Advanced Configuration #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#token-configuration) Token Configuration Adding an image, metadata, and context to your token. circle-info Context is social provenance and will be validated by interfaces displaying tokens. If the context (user id) cannot confidently be matched to the token, it will not be displayed on clanker.world. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#pool-configuration) Pool Configuration To customize the paired token and starting market cap, use the `pool` field. The pool is configured to use `WETH` as the paired token by default with a 10 eth starting market cap. If a custom starting market cap is used, custom positions must be used as well. circle-info The SDK will throw if there is not a position that has its `tickLower` touching the starting price. Well formed liquidity placements should span the starting price to max price. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#fee-configuration) Fee Configuration To customize the fees on the deployed Uniswap v4 pool, define a new `fees` field on the token. If no fee configuration is provided, the SDK configures a static pool with 1% fees for both token inputs. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#rewards-configuration) Rewards Configuration To customize the reward recipients, use the `rewards` field. The `admin` receives no rewards but may change the `recipient` which does get the rewards. They may be set to the same address. The sum of all `bps` must be 100%. If no reward configuration is provided, the `tokenAdmin` receives all of the LP rewards. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#vesting-vault) Vesting Vault To vault and optionally vest a portion of the token supply, use the `vault` field. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#initial-dev-buy) Initial Dev Buy To include a initial purchase on the pool, use the `devBuy` field. For dev buys with non-weth pairs, you must provide a **Uniswap v4** PoolKey for a WETH/ETH<>Paired swap. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#complete-example) Complete Example [PreviousQuick Startchevron-left](https://clanker.gitbook.io/clanker-documentation/sdk/quick-start) [Nextv3.1.0chevron-right](https://clanker.gitbook.io/clanker-documentation/sdk/v3.1.0) Last updated 6 days ago * [Examples](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#examples) * [Quick Start](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#quick-start) * [Basic Usage](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#basic-usage) * [Advanced Configuration](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#advanced-configuration) * [Complete Example](https://clanker.gitbook.io/clanker-documentation/sdk/v4.0.0#complete-example) sun-brightdesktopmoon Copy const token: ClankerTokenV4 = { name: "My Token", symbol: "MTK", tokenAdmin: account.address, image: 'ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi', metadata: { description: 'My new token.', socialMediaUrls: [], auditUrls: [], }, context: { interface: 'Clanker SDK', // Platform related to the deployment. For example "farcaster". platform: '', // Id of the message on the platform. For example, a "cast id" for farcaster. messageId: '', // Id of the user for the platform. For example, a "fid" for farcaster. id: '', } }; Copy // To switch between preset position options, PoolPositions.Standard (meme) // and PoolPositions.Project: const token: ClankerTokenV4 = { // ... other configuration ... positions: POOL_POSITIONS.Standard, } // To use a custom paired token, market cap, and liquidity positions const token: ClankerTokenV4 = { // ... other configuration ... pool: { pairedToken: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', tickIfToken0IsClanker: -423_800, positions: [\ {\ tickLower: -423_800, \ tickUpper: -318_400, \ positionBps: 9500\ }, \ {\ tickLower: -318_400, \ tickUpper: -100_000, \ positionBps: 500\ }\ ], } } Copy // To use Static Fee with custom fee settings: const tokenConfig: ClankerTokenV4 = { // ... other configuration ... fees: { type: "static", // Both fees are in bps clankerFee: 100, pairedFee: 100, }, }; // Using a Dynamic Fee basic preset const token: ClankerTokenV4 = { // ... other configuration ... fees: FEE_CONFIGS.DynamicBasic, }; Copy // To input custom reward recipients, with up to 7 recipients: const token: ClankerTokenV4 = { // ... other configuration ... rewards: { recipients: [\ {\ recipient: CREATOR_REWARD_ADDRESS,\ admin: CREATOR_ADMIN_ADDRESS,\ // In bps. 80% of reward\ bps: 8_000,\ // Take fees in the Paired token (usually WETH)\ // Options are Both, Paired, and Clanker\ token: "Paired",\ },\ {\ recipient: INTERFACE_REWARD_ADDRESS,\ admin: INTERFACE_ADMIN_ADDRESS,\ // In bps. 20% of reward\ bps: 2_000,\ // Take fees in both tokens - Clanker and Paired (usually WETH)\ token: "Both",\ },\ ] }, }; Copy // To vault a portion of the token supply at launch const token: ClankerTokenV4 = { // ... other configuration ... vault: { // 10% of token supply, up to 90% percentage: 10, // 30 days in seconds, min of 7 days lockupDuration: 2592000, // 30 days in seconds, can be 0 vestingDuration: 2592000, }, }; Copy // To perform a dev buy when WETH is the paired token const token: ClankerTokenV4 = { // ... other configuration ... devBuy: { // Decimal amount of eth to spend ethAmount: 0.0001, }, }; // To perform a dev buy when the paired token is not WETH const token: ClankerTokenV4 = { // ... other configuration ... devBuy: { // Decimal amount of eth to spend (on PairedToken) ethAmount: 0.0001, // pool key to swap from WETH -> PairedToken poolKey: { currency0: '0x0000000000000000000000000000000000000000', currency1: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', fee: 500, tickSpacing: 10, hooks: '0x0000000000000000000000000000000000000000', }, // minimum amount out from WETH -> PairedToken swap amountOutMin: 0.0000001, }, }; Copy import { Clanker } from 'clanker-sdk/v4'; import { createWalletClient, createPublicClient, http } from 'viem'; // Prepare viem: account, publicClient, and wallet. // Initialize the SDK const clanker = new Clanker({ publicClient, wallet }); // Deploy the token const { waitForTransaction } = await clanker.deploy({ name: "My Cool Project Coin", symbol: "MCPC", tokenAdmin: account.address, image: 'ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi', metadata: { description: 'Token with custom configuration including vesting and rewards', }, context: { interface: 'Clanker SDK', }, pool: { positions: POOL_POSITIONS.Project, }, fees: FEE_CONFIGS.DynamicBasic, rewards: { recipients: [\ {\ recipient: MY_EOA,\ admin: MY_MULTISIG,\ // In bps. 80% of reward\ bps: 8_000,\ token: "Paired",\ },\ {\ recipient: FRIEND_EOA,\ admin: FRIEND_MULTISIG,\ // In bps. 20% of reward\ bps: 2_000,\ token: "Both",\ },\ ] }, vault: { percentage: 10, // 10% of token supply, up to 90% lockupDuration: 2592000, // 30 days in seconds, min of 7 days vestingDuration: 2592000, // 30 days in seconds, can be 0 recipient: VAULT_ALLOCATION_RECIPIENT_ADDRESS // optional, defaults to tokenAdmin }, devBuy: { ethAmount: 0.1, }, }); const { address } = await waitForTransaction(); console.log(`Token deployed at: ${address}`); console.log(`View on Clanker World: https://clanker.world/clanker/${address}`); sun-brightdesktopmoon --- # Core Contracts | Clanker Documentation [v4chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4) [v3.1chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1) [PreviousGet Claimed Fees \[beta\]chevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta) [Nextv4chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4) Last updated 9 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # [DEPRECATED] Get Uncollected Fees | Clanker Documentation circle-info This enpoint has been deprecated. Instead, use this SDK method to get token rewards: [https://github.com/clanker-devco/clanker-sdk/blob/main/examples/v4/getTokenRewards.tsarrow-up-right](https://github.com/clanker-devco/clanker-sdk/blob/main/examples/v4/getTokenRewards.ts) ~**V3.1:**~ Copy GET https://www.clanker.world/api/get-estimated-uncollected-fees/[contract_address] circle-exclamation ~**For v4 clankers**~~: you must include the reward recipient address you are getting the uncollected fee amounts for, as multiple reward recipients may be assigned for the token.~ ~**V4:**~ Copy GET https://www.clanker.world/api/get-estimated-uncollected-fees/[contract_address]?rewardRecipientAddress=[reward_recipient_address] ~**Headers:**~ Copy x-api-key: your_api_key ~**Query Parameters:**~ Parameter Type Description `contract_address` string The token contract address to query string The reward recipient address (required for v4's) ~**Example Request (v3.1):**~ Copy curl -X GET \ 'https://www.clanker.world/api/get-estimated-uncollected-fees/[token_address]' \ -H 'x-api-key: your_api_key' ~**Example Request (v4):**~ Copy curl -X GET 'http://localhost:3000/api/get-estimated-uncollected-fees/[token_address]?rewardRecipientAddress=[reward_recipient_address]' \ -H 'x-api-key: your_api_key' | jq ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-uncollected-fees#response-format) ~Response Format~ ~**Example Response:**~ #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-uncollected-fees#response-fields) ~Response Fields~ ~**Top-Level Fields:**~ Field Type Description `lockerAddress` string Address of the fee locker contract `lpNftId` integer Unique identifier for the liquidity position NFT `token0UncollectedRewards` string Uncollected rewards for token0 (in base units) `token1UncollectedRewards` string Uncollected rewards for token1 (in base units) `token0` object Details of the first token in the pair `token1` object Details of the second token in the pair ~**Token Object Fields:**~ Field Type Description `chainId` integer Chain ID where the token is deployed `address` string Token contract address `symbol` string Token symbol `decimals` integer Number of decimal places for the token `name` string Token name [Previous\[DEPRECATED\] Get Estimated Rewardschevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards) [NextIndex Tokenchevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token) Last updated 14 days ago sun-brightdesktopmoon Copy rewardRecipientAddress Copy { "lockerAddress": "0x618A9840691334eE8d24445a4AdA4284Bf42417D", "lpNftId": 1605020, "token1UncollectedRewards": "25549999999999", "token0UncollectedRewards": "256188371342895862809729", "token0": { "chainId": 8453, "address": "0x054E4121a946da752a5Cab371BE52B2E6A897ba8", "symbol": "MTK", "decimals": 18, "name": "My Token" }, "token1": { "chainId": 8453, "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "decimals": 18, "name": "Wrapped Ether" } } sun-brightdesktopmoon --- # Brand Assets | Clanker Documentation [Google Drivearrow-up-right](https://drive.google.com/drive/folders/15-9L23e79K9w7_tXk279aCs8aZtE5dmv?usp=drive_link) [Figmaarrow-up-right](https://www.figma.com/design/AcUDfTVpycMZZrC8lHxcRn/Clanker---Public-Assets?node-id=0-1&p=f&t=o1xe8FIgq86SZiIh-0) [PreviousClankerToken v3.1.0 and v4.0.0chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/clankertoken-v3.1.0-and-v4.0.0) [NextAuditschevron-right](https://clanker.gitbook.io/clanker-documentation/references/audits) Last updated 6 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Core Team | Clanker Documentation * Jack Dishman: [Farcasterarrow-up-right](https://warpcast.com/dish) , [Xarrow-up-right](https://x.com/JackDishman) * Carter Appleton: [Farcasterarrow-up-right](https://warpcast.com/carter) * Rishav Mukherji: [Farcasterarrow-up-right](https://farcaster.xyz/rish) , [Xarrow-up-right](https://x.com/rish_neynar) * Manan Patel: [Farcasterarrow-up-right](https://farcaster.xyz/manan) , [Xarrow-up-right](https://x.com/rish_neynar) [PreviousSupported Quote Tokenschevron-left](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) [NextContactchevron-right](https://clanker.gitbook.io/clanker-documentation/references/contact) Last updated 6 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Fee Management Contracts | Clanker Documentation The **ClankerFeeLocker** and **IClankerLpLocker** contracts are used to manage the fees generated from the tokens. The **IClankerLpLocker** is on its second implementation, **ClankerLpLockerFeeConversion,** which is used to manage the LP fees for a token's deployment liquidity. [PreviousDeployment Configchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config) [NextClankerFeeLockerchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerfeelocker) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Index Token | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#endpoint) Endpoint Copy POST https://clanker.world/api/tokens/index ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#authentication) Authentication Requires a valid partner API key passed in the `x-api-key` header. API keys are validated against the `partners` table in the database. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#rate-limiting) Rate Limiting * **10 requests per minute** per IP address * Returns `429 Too Many Requests` when limit is exceeded ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#request) Request #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#headers) Headers Header Required Description `Content-Type` Yes Must be `application/json` `x-api-key` Yes Partner API key for authentication #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#body) Body Field Type Required Description `txHash` `string` Yes Transaction hash of the token deployment (0x-prefixed, 64 hex characters) `chainId` `number` Yes Chain ID where the token was deployed #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#supported-chain-ids) Supported Chain IDs Chain Chain ID Base `8453` Monad `143` Arbitrum `42161` Unichain `130` Ethereum `1` ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#response) Response #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#success-200) Success (200) #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#error-responses) Error Responses Status Error Description `400` `Invalid transaction hash format` txHash is missing or not a valid hex `400` `Unsupported chain` chainId is missing or not supported `400` `Failed to index transaction` Indexer could not process the tx `401` `API key is required` Missing x-api-key header `401` `Unauthorized` Invalid API key `429` `Too many requests...` Rate limit exceeded `500` `Internal server error` Unexpected server error ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#example) Example #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#curl) cURL #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#javascript-fetch) JavaScript (fetch) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#notes) Notes * The endpoint indexes the token synchronously and returns the token address on success * Ensure the token deployment transaction has been confirmed prior to fetching the indexing * If the token has already been indexed, it will update the existing record * After successful indexing, the token will be available at the returned URL [Previous\[DEPRECATED\] Get Uncollected Feeschevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-uncollected-fees) [NextGet Tokens by Adminchevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin) Last updated 2 months ago * [Endpoint](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#endpoint) * [Authentication](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#authentication) * [Rate Limiting](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#rate-limiting) * [Request](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#request) * [Response](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#response) * [Example](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#example) * [Notes](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token#notes) sun-brightdesktopmoon Copy { "success": true, "address": "0x1234567890abcdef1234567890abcdef12345678", "url": "/clanker/0x1234567890abcdef1234567890abcdef12345678" } Copy curl -X POST https://clanker.world/api/tokens/index \ -H "Content-Type: application/json" \ -H "x-api-key: YOUR_API_KEY" \ -d '{ "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "chainId": 143 }' Copy const response = await fetch('https://clanker.world/api/tokens/index', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': 'YOUR_API_KEY', }, body: JSON.stringify({ txHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', chainId: 143, }), }); const data = await response.json(); console.log(data); // { success: true, address: "0x...", url: "/clanker/0x..." } sun-brightdesktopmoon --- # ClankerFeeLocker | Clanker Documentation The **ClankerFeeLocker** contract is the user-facing contract for managing the fees generated from the tokens. Anyone is able to trigger the `claim()` function to transfer fees from the fee locker to the user's address. This design decision was made because many users point their fees to multisigs or other contracts which cannot trigger the `claim()` function themselves. circle-info The fees from paired tokens are grouped together for a single fee recipient. Meaning, if a user creates more than a single token paired with WETH, the WETH fees for all of the created tokens are claimable with a single call. There is no onchain way to see the breakdown of WETH per token. For that, we recommend inspecting the [`IClankerLpLocker.ClaimedRewards`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/530851868af87cbda2d4163745fb7154168b1225/src/interfaces/IClankerLPLocker.sol#L32) event on Dune. This event is emitted each time the rewards are claimed from a token's LP positions and moved into the fee locker. The reward arrays contain the breakdown of token rewards per reward recipient. User Facing Functions: Copy // callable by anyone, transfers the available fees to the recipient // // note: the 'token' parameter is the token that is being claimed, not the token // that is generating the fees. In other places in Clanker, the 'token' parameter // is the token that is generating the fees. function claim(address feeOwner, address token) external; // view function to return the amount of `token` fees available to claim for a `feeOwner` function availableFees(address feeOwner, address token) external view returns (uint256); [PreviousFee Management Contractschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts) [NextClankerLpLockerMultiple \[Deprecated\]chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockermultiple-deprecated) Last updated 6 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Compatible Trading Platforms | Clanker Documentation circle-info If you are a trading platform or venue and would like to integrate with Clanker's pools, please reach out at [Contact](https://clanker.gitbook.io/clanker-documentation/references/contact) . ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/compatible-trading-platforms#clanker-v4.0.0) Clanker v4.0.0 Clanker v4.0.0 deploys tokens into Uniswap v4 pools and utilizes custom Uniswap v4 hooks. Due to the complexity of Clanker's custom hooks, not all trading platforms and venues currently support trading through Clanker v4.0.0 pools. Integrations with additional trading venues are underway. circle-exclamation Most Telegram trading bots on Base have not yet integrated Uniswap v4 and / or Clanker's Uniswap v4 hooks. Please see below for a list of known, compatible trading platforms as of `July 8, 2025`: **Aggregators** * 0x / Matcha **Wallets** * Rainbow * Rabby * Coinbase Wallet **Other Trading Platforms / Frontends** * Clanker.world * Uniswap * Oku Trade * LlamaSwap * Based Trading Bot ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/compatible-trading-platforms#clanker-v3.1.0-and-previous) Clanker v3.1.0 and Previous Clanker v3.1.0 and previous versions deploys tokens into Uniswap v3 pools, which are widely supported by almost all trading venues. Users may run into issues trading Clanker tokens with paired tokens other than $WETH if the paired token does not have a liquid `$pairedToken / $WETH` pool. In this case, users will need to hold the paired token directly to avoid attempting to pool hop ($ETH to $pairedToken to $clankerToken) when trading. ![](https://clanker.gitbook.io/clanker-documentation/~gitbook/image?url=https%3A%2F%2F3915497305-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fmb3xJRvIg7xvUwDkNt7y%252Fuploads%252F9SP5RoHCjZqWbJgSWDhi%252Fimage.png%3Falt%3Dmedia%26token%3Dc6eb5f17-cd2b-4c72-812e-5b5be8f545ac&width=768&dpr=3&quality=100&sign=12c02dcf&sv=2) [PreviousAuditschevron-left](https://clanker.gitbook.io/clanker-documentation/references/audits) [NextDeployed Contractschevron-right](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts) Last updated 6 days ago * [Clanker v4.0.0](https://clanker.gitbook.io/clanker-documentation/references/compatible-trading-platforms#clanker-v4.0.0) * [Clanker v3.1.0 and Previous](https://clanker.gitbook.io/clanker-documentation/references/compatible-trading-platforms#clanker-v3.1.0-and-previous) sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerLpLockerMultiple [Deprecated] | Clanker Documentation circle-info Note: This locker has been deprecated in favor of [ClankerLpLockerFeeConversion](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockerfeeconversion) All tokens deployed with the ClankerLpLockerMultiple will continue to function but no new deployments will be allowed. The **ClankerLpLockerMultiple** contract is used to manage who is receiving the LP fees for a token's deployment liquidity. The LP is split between the list of reward recipients specified in the `LockerConfig` struct, with the split being specified in the `rewardBps` array. The `rewardAdmin` is able to update the `rewardRecipient` for their array position (and also update themselves). The `rewardBps` array is not changeable post deployment. See the [Deployment Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config) 's `LockerConfig` section for how to configure Clanker lockers. User Facing Functions: Copy // callable by the index's recipient admin, updates the reward admin for the reward index // // note: the 'token' parameter is the deployed token's address function updateRewardAdmin(address token, uint256 rewardIndex, address newAdmin) external; // callable by the index's recipient admin, updates the reward recipient for the reward index function updateRewardRecipient(address token, uint256 rewardIndex, address newRecipient) external; [PreviousClankerFeeLockerchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerfeelocker) [NextClankerLpLockerFeeConversionchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockerfeeconversion) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerVault | Clanker Documentation The **ClankerVault** extension allows a deployer to vault a portion of the token supply for a single admin. The tokens can be configured with an initial `lockupDuration` and an optional `vestingDuration`. The tokens will be inaccessible until the `lockupDuration` passes and then will start a linear vest after the `lockupDuration` ends. The vault has a minimum lockup duration of 7 days and has no required vesting duration. For example, if a deployer wants to vault 10% of the token supply for 30 days and have all tokens available 60 days post-unlock, they would set the lockupDuration to 30 days and the vestingDuration to 30 days. At 45 days post-deployment, half of the vaulted token supply would be accessible. Anyone is able to trigger the `claim()` function to transfer funds from the vault to the admin's address. This means it's okay if the admin is a contract. The **ClankerVault**'s extension data is in the form of: Copy struct VaultExtensionData { address admin; // the address to receive the tokens, can update itself uint256 lockupDuration; // the duration of the lockup period uint256 vestingDuration; // the duration of the vesting period } In this version, only a single vault extension is allowed per deployment. **User Facing Functions:** Copy // callable by anyone, transfers the available tokens to the `admin` function claim(address token) external; // callable by the token's admin, updates the vault admin to a new address function editAllocationAdmin(address token, address newAdmin) external; // view function to return the amount of `token` available to claim function amountAvailableToClaim(address token) external view returns (uint256); [PreviousExtensionschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions) [NextClankerAirdropchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdrop) Last updated 9 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Extensions | Clanker Documentation [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions#extension-contracts) Extension Contracts ------------------------------------------------------------------------------------------------------------------------------------------------ Extensions are contracts that can be used to add new functionality to the token deployment process. During deployment they are able to request a portion of the token's supply, an amount of ETH via msg.value, and can take actions on the token's deployed pool. Examples of actions that extension code can implement include: adding unlocked liquidity to the pool, distributing tokens, and making swaps on the deployed pool. The portion of the token supply requested by the extensions is reduced from the amount that would otherwise be used in the pool's initial liquidity positions. Up to 90% of the token supply can be allocated to extensions. The total amount of ETH requested by the extensions must sum to the msg.value passed into the deployToken function. To deploy a token with an extension, you would add an ExtensionConfig struct to the DeploymentConfig's list of extensions. The ExtensionConfig struct has the following shape: Copy struct ExtensionConfig { address extension; // address of the deployed extension, must be allowlisted on the factory uint256 msgValue; // the `msg.value` to send to the extension uint16 extensionBps; // the portion of the token supply to be allocated to the extension bytes extensionData; // additional data to be passed to the extension, specific to the extension being used, normally a struct } Extensions must be allowlisted by the Clanker team to be used on the factory and we do reserve the right to remove extensions. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions#undefined) [PreviousClankerLpLockerFeeConversionchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockerfeeconversion) [NextClankerVaultchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankervault) Last updated 5 months ago * [Extension Contracts](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions#extension-contracts) * [](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions#undefined) sun-brightdesktopmoon sun-brightdesktopmoon --- # Contact | Clanker Documentation Please leave us a message [herearrow-up-right](https://clanker.world/contact-us) . We'd love to hear from you! [PreviousCore Teamchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-team) Last updated 6 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerUniv4EthDevBuy | Clanker Documentation The **ClankerUniv4EthDevBuy** extension is used to perform an initial swap of the token using passed-in ETH. If the paired token is not WETH, the extension will swap the passed-in ETH for the paired token before swapping the paired token for the deployed token. For non-WETH pairs, the paired token must have a WETH<>PairedToken Uniswap v4 pool. In this version, multiple devBuy extensions are allowed per deployment. The **ClankerUniv4EthDevBuy**'s extension data is in the form of: Copy struct Univ4EthDevBuyExtensionData { // pool key to swap from W/ETH to paired token if the paired token is not WETH. // Can be set to fake data if the paired token is WETH but needs to be the // correct byte length PoolKey pairedTokenPoolKey; // minimum amount of token to receive from the W/ETH -> paired token swap uint128 pairedTokenAmountOutMinimum; // recipient of the tokens, should be specified address recipient; } The `pairedTokenPoolKey` parameter is the full `PoolKey` and not the `PoolID`. For example, if the paired token was USDC, the following `PoolKey` on Base could work: Copy // PoolKey for USDC<>ETH on Base Mainnet // PoolID: 0x96d4b53a38337a5733179751781178a2613306063c511b78cd02684739288c0a poolKey: { currency0: '0x0000000000000000000000000000000000000000', currency1: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', fee: 500, tickSpacing: 10, hooks: '0x0000000000000000000000000000000000000000', } There are no user-facing functions for the **ClankerUniv4EthDevBuy** extension. [PreviousClankerAirdropV2chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2) [NextClankerPresaleEthToCreatorchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerLpLockerFeeConversion | Clanker Documentation The **ClankerLpLockerFeeConversion** contract is used to manage who is receiving the LP fees for a token's deployment liquidity and in which token a recipient's fees accumulate in. The LP is split between the list of reward recipients specified in the `LockerConfig` struct, with the split being specified in the `rewardBps` array. Fee recipients can choose to accumulate their fees in: the deployed token, the paired token, or, both tokens. The `rewardAdmin` is able to update the `rewardRecipient` and the `feePreference` for their array position (and also update themselves). The `rewardBps` array is not changeable post deployment. See the [Deployment Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config) 's `IClanker.LockerConfig` section for how to configure Clanker lockers. The `feePreferences` are set through the `LockerConfig.lockerdata` field, with the following struct expected as input: Copy // IClankerLpLockerFeeConversion.sol enum FeeIn { Both, Paired, Clanker } struct LpFeeConversionInfo { FeeIn[] feePreference; // needs to be same length as IClanker.LockerConfig's other reward arrays } Solidity snippet of example encoding: Copy // example of how to encode: IClanker.DeploymentConfig memory exampleConfig; IClankerLpLockerFeeConversion.FeeIn[] memory feeIn = new IClankerLpLockerFeeConversion.FeeIn[](3); feeIn[0] = IClankerLpLockerFeeConversion.FeeIn.Paired; feeIn[1] = IClankerLpLockerFeeConversion.FeeIn.Clanker; feeIn[2] = IClankerLpLockerFeeConversion.FeeIn.Both; exampleConfig.lockerConfig.lockerData = abi.encode(IClankerLpLockerFeeConversion.LpFeeConversionInfo({feePreference: feeIn})); User Facing Functions: [PreviousClankerLpLockerMultiple \[Deprecated\]chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockermultiple-deprecated) [NextExtensionschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions) Last updated 8 months ago sun-brightdesktopmoon Copy // callable by the index's recipient admin, updates the reward admin for the reward index // // note: the 'token' parameter is the deployed token's address function updateRewardAdmin(address token, uint256 rewardIndex, address newAdmin) external; // callable by the index's recipient admin, updates the reward recipient for the reward index function updateRewardRecipient(address token, uint256 rewardIndex, address newRecipient) external; // callable by the index's recipient admin, updates the fee preference for the reward index function updateFeePreference(address token, uint256 rewardIndex, FeeIn newFeePreference) external; sun-brightdesktopmoon --- # Get Claimed Fees [beta] | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#endpoint) Endpoint Copy GET /api/get-claimed-fees/{tokenAddress}/{feeRecipient} ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#authentication) Authentication Requires a valid partner API key passed via the `x-api-key` header. Header Required Description `x-api-key` Yes Partner API key ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#path-parameters) Path Parameters Parameter Type Required Description `tokenAddress` `string` Yes The Clanker token contract address `feeRecipient` `string` Yes The fee recipient (fee owner) address Both addresses must be valid Ethereum addresses (checksummed or lowercase). ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#query-parameters) Query Parameters Parameter Type Required Default Description `chainId` `number` No `8453` Chain ID (defaults to Base mainnet) `limit` `number` No `50` Number of tx hashes to return (max 100) `offset` `number` No `0` Number of records to skip for pagination #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#supported-chains) Supported Chains Chain Chain ID Base `8453` Base Sepolia `84532` Arbitrum `42161` Monad Testnet `10143` ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#response) Response #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#id-200-ok) 200 OK Field Type Description `tokenAddress` `string` Checksummed token contract address `feeRecipient` `string` Checksummed fee recipient address `chainId` `number` Chain ID used for the query `totalClaimed` `string` Total claimed amount in wei (sum of **all** claims) `claimCount` `number` Total number of claim events (across all pages) `txHashes` `string[]` Transaction hashes for the current page, most recent first `pagination` `object` Pagination metadata **Pagination Object** Field Type Description `limit` `number` Number of results per page `offset` `number` Current offset `hasMore` `boolean` Whether more results exist beyond this page #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#id-400-bad-request) 400 Bad Request #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#id-401-unauthorized) 401 Unauthorized #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#id-500-internal-server-error) 500 Internal Server Error ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#caching) Caching Responses are cached for 60 seconds with a 120-second stale-while-revalidate window. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#example) Example [PreviousGet Tokens by Adminchevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin) [NextCore Contractschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts) Last updated 1 month ago * [Endpoint](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#endpoint) * [Authentication](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#authentication) * [Path Parameters](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#path-parameters) * [Query Parameters](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#query-parameters) * [Response](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#response) * [Caching](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#caching) * [Example](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta#example) sun-brightdesktopmoon Copy { "tokenAddress": "0x9f86dB9fc6f7c9408e8Fda3Ff8ce4e78ac7a6b07", "feeRecipient": "0xF60633D02690e2A15A54AB919925F3d038Df163e", "chainId": 8453, "totalClaimed": "1789486765760743877", "claimCount": 15274, "txHashes": [\ "0x43a117b1a5345d6ac56a4b7fb2a6d11654ce1835ba12b78acefb9d5cf38799c7",\ "0x1de665b41ef55e3cd966163e40c55a6a0bc0be33a17d07eb69cc978b240f611d",\ "0xf18645b103e71a952c38888e8af7bd9a7c295b63c35f75b3c1a3f3cfc4ca05c9"\ ], "pagination": { "limit": 50, "offset": 0, "hasMore": true } } Copy { "error": "Invalid token address" } Copy { "error": "Invalid fee recipient address" } Copy { "error": "Unsupported chain" } Copy { "error": "API key is required" } Copy { "error": "Unauthorized" } Copy { "error": "Failed to fetch claimed fees" } Copy # First page (default limit=50, offset=0) curl -H "x-api-key: YOUR_API_KEY" \ "https://clanker.world/api/get-claimed-fees/0x9f86dB9fc6f7c9408e8Fda3Ff8ce4e78ac7a6b07/0xF60633D02690e2A15A54AB919925F3d038Df163e?chainId=8453" # Paginated request curl -H "x-api-key: YOUR_API_KEY" \ "https://clanker.world/api/get-claimed-fees/0x9f86dB9fc6f7c9408e8Fda3Ff8ce4e78ac7a6b07/0xF60633D02690e2A15A54AB919925F3d038Df163e?chainId=8453&limit=20&offset=40" sun-brightdesktopmoon --- # v4 | Clanker Documentation Clanker v4 introduces a modular framework, allowing for individual components that can be swapped out and upgraded as needed. The code can be found [herearrow-up-right](https://github.com/clanker-devco/v4-contracts) . [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#core-contracts) Core Contracts --------------------------------------------------------------------------------------------------------------------------- Clanker v4 consists of three main contracts that are non-upgradeable and can be expected to remain unchanged throughout the lifetime of v4: * **Clanker**: The factory contract responsible for token deployment, triggering pool creation, triggering liquidity placement via the LpLocker, and triggering extensions. * [**ClankerFeeLocker**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerfeelocker) : A contract that allows users to view and claim their accumulated token fees. This single contract accrues fees for all tokens deployed on Clanker v4.0.0. * **ClankerToken**: A super-chain compatible ERC20 contract. A new contract is deployed for every call to `deployToken()`. Clanker v4 additionally defines four interfaces with which the Clanker factory interfaces: * **IClankerLpLocker**: An interface for liquidity lockers to implement to be compatible with Clanker's v4 factory. The implementation is expected to manage placement of LP positions as well as collection and distribution of fees to the ClankerFeeLocker. * **IClankerExtensions**: An interface for extensions to implement to be compatible with Clanker's v4 factory. These modules are used to add additional functionality to the token deployment process outside of LP and pool management. * **IClankerMevModule**: An interface for MEV modules to implement to be compatible with Clanker's v4 factory. These modules are developed by the Clanker team per chain to help with MEV scenarios. * **IClankerHook**: An interface for Uniswap v4 Hooks to implement to be compatible with the Clanker factory. These hooks are expected to contain custom logic for Clanker such as implementing our protocol fee and aiding with automatic fee collection. All of the implementations must be allowlisted on the Clanker factory by the team to be used in deployments. [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#modular-contracts) Modular Contracts --------------------------------------------------------------------------------------------------------------------------------- Clanker v4 includes the following contracts which implement the above interfaces. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#iclankerhooks) IClankerHooks: v4.0 * [**ClankerHook**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook) : An abstract implementation of IClankerHook which contains the implementation for Clanker's protocol fee, automatic fee claiming abilities, MEV module abilities, and fee customization abilities which the static and dynamic hooks build on top of. * [**ClankerHookStaticFee**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookstaticfee) : An extension of the ClankerHook which enables users to set a static fee for both the deployed token and the paired token. * [**ClankerHookDynamicFee**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee) : An extension of the ClankerHook which enables users to configure a dynamic fee that adjusts based on the amount of volatility in the pool. v4.1 * [**ClankerHookV2**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee) : The same as ClankerHook but with expanded capabilities including [Pool Extensions](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions) and mev modules that can change the applied LP fee. * [**ClankerHookStaticFeeV2**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/clankerhookstaticfeev2) : The same as ClankerHookStaticFee except with ClankerHookV2 as the base instead of ClankerHook. * [**ClankerHookDynamicFeeV2**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/clankerhookdynamicfeev2) : The same as ClankerHookDynamicFee except with ClankerHookV2 as the base instead of ClankerHook. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#iclankerlplockers) IClankerLPLockers: * [**ClankerLpLockerFeeConvesrion**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockerfeeconversion) : A locker implementation which enables 7 different reward recipients to be specified and 7 different initial LP positions to be placed, each able to specify which token they prefer to accumulate fees in. This locker works with the IClankerHook implementations to automatically collect LP fees on every swap and distribute the fees to reward recipients via the ClankerFeeLocker. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#iclankerextensions) IClankerExtensions: * [**ClankerVault**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankervault) : An extension that allows deployers to vault a portion of the token supply with an optional linear vest option post-unlock. The minimum lockup time is 7 days. * [**ClankerAirdrop**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdrop) : An extension which allows for a portion of the token supply to be allocated to airdrop recipients. Users of the extension must supply a merkle root whose leaves contain the airdrop recipient and the amount of tokens each recipient is entitled to. Lockup and linear vesting options are also available. The minimum lockup time is 1 day. * [**ClankerAirdropV2**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2) : Similar to ClankerAirdrop but with more admin controls and the ability to change the merkle root post launch. * [**ClankerUniv4EthDevBuy**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankeruniv4ethdevbuy) : An extension which allows the deployer to perform an initial swap of the token using passed-in ETH. If the paired token for the pool is not WETH, only paired tokens which have a WETH<>PairedToken UniswapV4 pool will be able to use this extension. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#iclankermevmodule) IClankerMevModule: v4.0 * [**ClankerMevModule2BlockDelay**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules) : A MEV module which makes the pool non-swappable for the first 2 blocks after deployment. This prevents people from front-running deployments in the same block of creation. * [**ClankerSniperAuctionV0**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) : A MEV module for priority ordered L2s that auctions off the first swaps on a block, directing the auction fees to token creators. v4.1 * [**ClankerMevDescendingFees**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevdescendingfees) : A MEV module which enables deployers to select a starting LP fee (up to 80%), an ending fee, and a duration to decay the fee over (max 2 mintues). The fee descends parabolically. * [**ClankerSniperAuctionV2**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2) : The same as ClankerSniperAuctionV0 but with the fee behavior of ClankerMevDescendingFees. Auctioned swaps pay the starting fee and the fee descent starts after the auction ends. [PreviousCore Contractschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts) [NextDeployment Configchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config) Last updated 5 months ago * [Core Contracts](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#core-contracts) * [Modular Contracts](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4#modular-contracts) sun-brightdesktopmoon sun-brightdesktopmoon --- # Audits | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#august-2025-clanker-v4.1) August 2025, Clanker v4.1 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#macro) Macro file-pdf 272KB [Claner-A-4.pdf](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FH5Aw2kH5l5HVDtmE3mJA%2FClaner-A-4.pdf?alt=media&token=7652c1cf-659f-4c72-b02e-104ac0bea4a5) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FH5Aw2kH5l5HVDtmE3mJA%2FClaner-A-4.pdf?alt=media&token=7652c1cf-659f-4c72-b02e-104ac0bea4a5) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#june-july-2025-clanker-v4) June-July 2025, Clanker v4 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#cantina) Cantina file-pdf 633KB [Clanker v4.0.0 Audit (Cantina).pdf](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FDQebFYcvU3itphlUhen3%2FClanker%20v4.0.0%20Audit%20(Cantina).pdf?alt=media&token=08d28df1-62cd-4f83-9956-fd73077f770e) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FDQebFYcvU3itphlUhen3%2FClanker%20v4.0.0%20Audit%20(Cantina).pdf?alt=media&token=08d28df1-62cd-4f83-9956-fd73077f770e) #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#macro-1) Macro file-pdf 644KB [Clanker v4.0.0 Audit (Macro).pdf](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2F5dUmZpH8l3hAlA9N3j41%2FClanker%20v4.0.0%20Audit%20(Macro).pdf?alt=media&token=9c174222-455c-4870-a76c-d16eb8061e25) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2F5dUmZpH8l3hAlA9N3j41%2FClanker%20v4.0.0%20Audit%20(Macro).pdf?alt=media&token=9c174222-455c-4870-a76c-d16eb8061e25) file-pdf 523KB [Clanker v4.0.0 Audit #2 (Macro).pdf](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FYWhEKuI6Opx09cJ5Pmb7%2FClanker%20v4.0.0%20Audit%20%232%20(Macro).pdf?alt=media&token=82d8786d-743b-49d8-b527-f444b5753777) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FYWhEKuI6Opx09cJ5Pmb7%2FClanker%20v4.0.0%20Audit%20%232%20(Macro).pdf?alt=media&token=82d8786d-743b-49d8-b527-f444b5753777) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#march-2025-clanker-v3.1.0) March 2025, Clanker v3.1.0 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#macro-2) Macro file-pdf 342KB [Clanker v3.1.0 Audit (Macro).pdf](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FTkEOvv5F69zFy5Ba5ilt%2FClanker%20v3.1.0%20Audit%20(Macro).pdf?alt=media&token=5d82a35d-57ac-47d9-930d-5de805a6a920) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FTkEOvv5F69zFy5Ba5ilt%2FClanker%20v3.1.0%20Audit%20(Macro).pdf?alt=media&token=5d82a35d-57ac-47d9-930d-5de805a6a920) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#january-2025-clanker-v2.0.0) January 2025, Clanker v2.0.0 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/audits#quantstamp) Quantstamp file-pdf 735KB [Clanker v2.0.0 Audit (Quantstamp).pdf](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FlnI6cfB73OhzqSqw77af%2FClanker%20v2.0.0%20Audit%20(Quantstamp).pdf?alt=media&token=ff18cf64-8ff8-4871-8661-548eea549a66) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3915497305-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fmb3xJRvIg7xvUwDkNt7y%2Fuploads%2FlnI6cfB73OhzqSqw77af%2FClanker%20v2.0.0%20Audit%20(Quantstamp).pdf?alt=media&token=ff18cf64-8ff8-4871-8661-548eea549a66) [PreviousBrand Assetschevron-left](https://clanker.gitbook.io/clanker-documentation/references/brand-assets) [NextCompatible Trading Platformschevron-right](https://clanker.gitbook.io/clanker-documentation/references/compatible-trading-platforms) Last updated 6 days ago * [August 2025, Clanker v4.1](https://clanker.gitbook.io/clanker-documentation/references/audits#august-2025-clanker-v4.1) * [June-July 2025, Clanker v4](https://clanker.gitbook.io/clanker-documentation/references/audits#june-july-2025-clanker-v4) * [March 2025, Clanker v3.1.0](https://clanker.gitbook.io/clanker-documentation/references/audits#march-2025-clanker-v3.1.0) * [January 2025, Clanker v2.0.0](https://clanker.gitbook.io/clanker-documentation/references/audits#january-2025-clanker-v2.0.0) sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerAirdrop | Clanker Documentation The **ClankerAirdrop** extension will allow a deployer to airdrop a portion of the token supply via a merkle root. To claim tokens, the recipient must have a leaf in the merkle root. The tokens can be configured with an initial `lockupDuration` and a follow-up `vestingDuration`. The tokens will be inaccessible until the `lockupDuration` passes and then will start a linear vest after the `lockupDuration` ends. The airdrop has a minimum lockup duration of 1 day and has no required vesting duration. Anyone is able to trigger the `claim()` function to transfer funds from the airdrop to the recipient's address. For example, if a deployer wants to lock the airdropped tokens for 30 days and have all tokens available 60 days post-unlock, they would set the `lockupDuration` to 30 days and the `vestingDuration` to 30 days. At 45 days post-deployment, half of the airdropped token supply would be accessible. The **ClankerAirdrop**'s extension data is in the form of: Copy struct AirdropExtensionData { bytes32 merkleRoot; // the merkle root of the airdrop uint256 lockupDuration; // the duration of the lockup period uint256 vestingDuration; // the duration of the vesting period } The airdrop expects leaves to be in abi-encoded format of: `(address recipient, uint256 amount)`. The **OpenZeppelin** MerkleProof library is used to verify the proof against the merkle root, with a JavaScript package available [herearrow-up-right](https://github.com/OpenZeppelin/merkle-tree) . Note: this extension does not verify on-chain that the merkle root's leaves add up to the total supply of the token. It is the responsibility of the deployer to ensure that the merkle root is valid. If the recipient is granted tokens in multiple leaves, the amount of tokens they are able to claim will be the maximum of the granted amounts. **User Facing Functions:** Copy // callable by anyone, transfers the available tokens to the recipient function claim(address token, address recipient, uint256 allocatedAmount, bytes32[] calldata proof) external; // helper function to surface the amount available to claim for a user, // assumes that there exists a proof for the allocated amount function amountAvailableToClaim(address token, address recipient, uint256 allocatedAmount) external view returns (uint256); [PreviousClankerVaultchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankervault) [NextClankerAirdropV2chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2) Last updated 9 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerHook | Clanker Documentation The **ClankerHook** contract is the abstract base contract that our other hooks inherit from. The **ClankerHook** contract itself facilitates: * Automatic fee collection of the initial LP position's fees. Fees are collected by the **IClankerLpLocker** contracts and are routed to the [**ClankerFeeLocker**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerfeelocker) contract for users to claim. * Collection of a DEX-level protocol fee, separate from the creator LP fees, always in the paired token. * Triggering of a pool's `MevModule` until it is disabled or expired. Mev Modules can run for up to 2 mintues max. Note: both of the fee collection mechanisms lag by a swap, so the fees collected in a swap are the fees from the previous swap. This is because a swap's fees are only sent into the `PoolManager` contract after the swap has completed. v4.0.0's initial release introduces two different fee hook types: `ClankerHookStaticFee` and `ClankerHookDynamicFee`. For both hooks, the protocol's DEX fee is always taken in the paired token and will always be 20% of the active LP fee. The maximum LP fee is 30% of a swap. It is NOT recommended to set the fee this high if it is desired for the token to work with every router; fees that high should be reserved for esoteric use cases only. Clanker's hooks allow for deployment of pools not created by the factory via an 'open' version of the initialization pathway. Pools created via this method do not have automatic LP fee claiming or mev module operations. Note: this function will revert if called with the `clanker` address set to `WETH`. We only collect the protocol's fee on the paired token and would prefer it to be `WETH` when possible. Copy // callable by anyone function initializePoolOpen( address clanker, address pairedToken, int24 tickIfToken0IsClanker, int24 tickSpacing, bytes calldata poolData ) public returns (PoolKey memory) [PreviousClankerPresaleAllowlistchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist) [NextClankerHookStaticFeechevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookstaticfee) Last updated 6 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Get Tokens by Admin | Clanker Documentation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#endpoint) Endpoint Copy GET /api/tokens/fetch-by-admin ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#authentication) Authentication This endpoint requires API key authentication. Header Required Description `x-api-key` Yes Your API key for authentication ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#query-parameters) Query Parameters Parameter Type Required Default Description `admin` `string` Yes \- The admin wallet address (0x...) to filter tokens by `limit` `number` No `10` Number of tokens to return per page (min: 1, max: 200) `cursor` `string` No \- Pagination cursor for fetching the next page of results `chainId` `number` No \- Filter by specific chain ID (e.g., `8453` for Base) `includeUser` `boolean` No `false` Include user/creator data in the response `includeMarket` `boolean` No `false` Include market data (price, market cap, etc.) in the response ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#response) Response #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#success-200-ok) Success (200 OK) Copy { "data": [\ {\ "id": "uuid",\ "contract_address": "0x...",\ "name": "Token Name",\ "symbol": "TKN",\ "admin": "0x...",\ "chain_id": 8453,\ "deployed_at": "2024-01-01T00:00:00.000Z",\ "pool_address": "0x...",\ "img_url": "https://...",\ ...\ }\ ], "total": 42, "cursor": "eyJpZCI6Ii4uLiJ9" } Field Type Description `data` `array` Array of token objects `total` `number` Total number of tokens matching the query `cursor` `string | null` Cursor for the next page, `null` if no more results #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#error-responses) Error Responses **401 Unauthorized** Missing or invalid API key. **400 Bad Request** Missing or invalid admin address. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#examples) Examples #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#basic-request) Basic Request #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#with-pagination) With Pagination #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#with-all-options) With All Options #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#javascript-typescript-example) JavaScript/TypeScript Example ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#pagination) Pagination To paginate through results: 1. Make an initial request without a `cursor` 2. If the response includes a `cursor` value, use it in your next request 3. Continue until `cursor` is `null` or undefined ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#rate-limits) Rate Limits Authenticated requests are subject to standard API rate limits. Contact support for rate limit details. [PreviousIndex Tokenchevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/index-token) [NextGet Claimed Fees \[beta\]chevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-claimed-fees-beta) Last updated 2 months ago * [Endpoint](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#endpoint) * [Authentication](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#authentication) * [Query Parameters](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#query-parameters) * [Response](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#response) * [Examples](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#examples) * [Pagination](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#pagination) * [Rate Limits](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-by-admin#rate-limits) sun-brightdesktopmoon Copy { "error": "API key is required" } Copy { "error": "Admin address is required" } Copy { "error": "Invalid admin address" } Copy curl -X GET "https://clanker.world/api/tokens/fetch-by-admin?admin=0x1234567890abcdef1234567890abcdef12345678" \ -H "x-api-key: your-api-key" Copy curl -X GET "https://clanker.world/api/tokens/fetch-by-admin?admin=0x1234567890abcdef1234567890abcdef12345678&limit=20&cursor=eyJpZCI6Ii4uLiJ9" \ -H "x-api-key: your-api-key" Copy curl -X GET "https://clanker.world/api/tokens/fetch-by-admin?admin=0x1234567890abcdef1234567890abcdef12345678&limit=50&chainId=8453&includeUser=true&includeMarket=true" \ -H "x-api-key: your-api-key" Copy const response = await fetch( 'https://clanker.world/api/tokens/fetch-by-admin?' + new URLSearchParams({ admin: '0x1234567890abcdef1234567890abcdef12345678', limit: '20', includeMarket: 'true', }), { headers: { 'x-api-key': 'your-api-key', }, } ); const { data, total, cursor } = await response.json(); Copy let cursor: string | undefined; const allTokens = []; do { const params = new URLSearchParams({ admin: '0x...', limit: '50' }); if (cursor) params.set('cursor', cursor); const response = await fetch(`/api/tokens/fetch-by-admin?${params}`, { headers: { 'x-api-key': 'your-api-key' }, }); const result = await response.json(); allTokens.push(...result.data); cursor = result.cursor; } while (cursor); sun-brightdesktopmoon --- # ClankerToken v3.1.0 and v4.0.0 | Clanker Documentation The tokens deployed by the Clanker factory are ERC20s with ERC20Permit, ERC20Votes and ERC20Burnable capabilities. Tokens are deployed with an 'admin' key which is able to verify the contract, update the image, and update the metadata. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/clankertoken-v3.1.0-and-v4.0.0#user-facing-functions) User Facing Functions: Copy // only callable by token's admin function updateImage(string memory image_) external; // only callable by token's admin function updateMetadata(string memory metadata_) external; // only callable by token's admin function verify() external; [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/clankertoken-v3.1.0-and-v4.0.0#superchain-compatibility) Superchain Compatibility --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Clanker is `SuperchainERC20` compatible such that if a token is deployed on one chain, it can be re-deployed on other compatible super-chains with the same token address. The `originatingChainId` parameter is used to determine if the initial supply should be minted. If the `originatingChainId` is not the current chain, zero supply will be minted and users are expected to utilize the super-chain's brige to migrate their tokens. Tokens can only be minted with supply on the originating chain, and cannot be minted with zero supply on the originating chain. By using Foundry's `CREATE2` deployment support, it is ensured that the factory contract (Clanker) can have the same address on different chains. This is needed to have the same resulting token addresses on the different chains. Superchain documentation can be found [herearrow-up-right](https://docs.optimism.io/stack/interop/superchain-erc20) . circle-info For a token to be able to be bridged between Superchain-compatible chains, the chains must be in the same Superchain cluster. This is subject to user error if the Clanker contract is not properly initialized on the target chain, and if the target chain is not part of the same Superchain cluster. The function `deployTokenZeroSupply()` can be used to deploy a token with zero supply. This is useful for tokens that are bridged to a Superchain-compatible chain: [PreviousClankerVaultchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clankervault) [NextBrand Assetschevron-right](https://clanker.gitbook.io/clanker-documentation/references/brand-assets) Last updated 9 months ago sun-brightdesktopmoon Copy // Use the same tokenConfig as that was used to deploy the token on the // originating chain with the `creatorAdmin as the `tokenAdmin` function deployTokenZeroSupply(_version_specific_parameters_) external returns (address tokenAddress) {...} sun-brightdesktopmoon --- # Supported Quote Tokens | Clanker Documentation circle-info These quote tokens are supported for deployments via the @clanker bot on Farcaster and API deployments. Starting with release v0.3.1, users may permissionlessly interact with the Clanker token factory to deploy tokens paired with arbitrary quote tokens and that start at arbitrary market caps. circle-exclamation The Starting Market Cap, denominated in the quote token, is subject to change. Please refer to this page for the latest info. Token Name Ticker Chain Contract Address Approximate Starting Market Cap Initial Tick Wrapped Ether WETH Base 0x4200000000000000000000000000000000000006 10 WETH \-230400 A0x A0X Base 0x820c5f0fb255a1d18fd0ebb0f1ccefbc4d546da7 ~6.85B A0X \-152800 Coinbase Wrapped BTC cbBTC Base 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf 0.1 cbBTC \-391600 Degen DEGEN Base 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed 666,667 DEGEN \-164600 higher HIGHER Base 0x0578d8A44db98B23BF096A382e016e29a5Ce0ffe 1,250,000 HIGHER \-134600 Native NATIVE Base 0x20DD04c17AFD5c9a8b3f2cdacaa8Ee7907385BEF 25,000,000 NATIVE \-167600 Super Anon ANON Base 0x0Db510e79909666d6dEc7f5e49370838c16D950f 10,000,000 ANON \-167600 tokenbot CLANKER Base 0x1bc0c42215582d5A085795f4baDbaC3ff36d1Bcb 500 CLANKER \-179200 [PreviousDeployed Contractschevron-left](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts) [NextCore Teamchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-team) Last updated 6 days ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerHookStaticFee | Clanker Documentation The **ClankerHookStaticFee** hook inherits from the **ClankerHook** and is used to set a static fee for both the deployed token and the paired token. The fees are able to be different from each other and have a max of 30%. The fee unit is in Uniswap BPS, where `1` = 1/100th of a basis point. A fee of 1% is represented by `10_000,` and a fee of 30% by `300_000`. The expected `PoolConfig.poolData` is in the form of: Copy struct PoolStaticConfigVars { // the fee taken on the deployed token when it's the input token uint24 clankerFee; // the fee taken on the paired token when it's the input token uint24 pairedFee; } These fees are not changeable post deployment. [PreviousClankerHookchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook) [NextClankerHookDynamicFeechevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerAirdropV2 | Clanker Documentation The **ClankerAirdropV2** extension allows a deployer to airdrop a portion of the token supply via a merkle root. ClankerAirdropV2 is an upgrade of ClankerAirdrop with increased admin controls. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#how-to-set-up) How to Set Up At the time of token deployment, the deployer needs to supply the following: 1. How much supply to allocate to the airdrop (max 90%) 2. How long to lock up the airdrop (minimum 1 day) 3. How long to vest the airdrop (can be zero) 4. The merkle root specifying the recipients and their token amounts (can be zero and set later) The **ClankerAirdrop** extension data is in the form of: Copy struct AirdropExtensionData { address admin; // controller of the token's airdrop admin functions bytes32 merkleRoot; // the merkle root of the airdrop uint256 lockupDuration; // the duration of the lockup period uint256 vestingDuration; // the duration of the vesting period } #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#merkle-root-format) Merkle Root Format The airdrop expects leaves to be in ABI-encoded format: `(address recipient, uint256 amount)`. The **OpenZeppelin** MerkleProof library is used to verify the proof against the merkle root, with a JavaScript package available [herearrow-up-right](https://github.com/OpenZeppelin/merkle-tree) . > **Important:** This extension does not verify on-chain that the merkle root's leaves add up to the total supply of the token. It is the responsibility of the deployer to ensure that the merkle root is valid. If a recipient is granted tokens in multiple leaves, the amount of tokens they are able to claim will be the maximum of the granted amounts. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#admin-capabilities) Admin Capabilities Admins are able to perform two main actions: 1. **Recover unclaimed tokens** two weeks after an airdrop's lockup + vesting time period has passed. If an airdrop has a 7-day lockup and a 7-day vest, the admin can recover tokens 28 days post-launch (7-day lockup + 7-day vest + 14-day protected user claim window = 28 days). 2. **Change the merkle root** for their token. Admins are able to do this: * Anytime if the root was initially set to zero and is still zero * 1 day after the lockup period has ended and no users have claimed their tokens #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#admin-facing-functions) Admin-Facing Functions Only a token's admin can call the following functions: ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#how-to-claim) How to Claim To claim tokens, the recipient must have a leaf in the merkle root. Anyone is able to trigger the `claim()` function to transfer funds from the airdrop to the recipient's address. Claiming can begin after a token's lockup period has ended, and the amount available to claim is a function of time over an optional vesting period. For example, if a deployer wants to lock the airdropped tokens for 30 days and have all tokens available 60 days post-unlock, they would set the `lockupDuration` to 30 days and the `vestingDuration` to 30 days. At 45 days post-deployment, half of the airdropped token supply would be accessible. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#user-facing-functions) User-Facing Functions [PreviousClankerAirdropchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdrop) [NextClankerUniv4EthDevBuychevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankeruniv4ethdevbuy) Last updated 5 months ago * [How to Set Up](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#how-to-set-up) * [Admin Capabilities](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#admin-capabilities) * [How to Claim](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerairdropv2#how-to-claim) sun-brightdesktopmoon Copy // admins can claim the remaining balance after the claim expiration // interval has been reached function adminClaim(address token, address recipient) external; // update the merkle root of the airdrop by admin if the merkle root is // zero or if the claim overwrite interval has passed without a claim function updateMerkleRoot(address token, bytes32 newMerkleRoot) external; // update the admin of the airdrop function updateAdmin(address token, address newAdmin) external; Copy // callable by anyone, transfers the available tokens to the recipient function claim(address token, address recipient, uint256 allocatedAmount, bytes32[] calldata proof) external; // helper function to surface the amount available to claim for a user, // assumes that there exists a proof for the allocated amount function amountAvailableToClaim(address token, address recipient, uint256 allocatedAmount) external view returns (uint256); sun-brightdesktopmoon --- # ClankerPresaleAllowlist | Clanker Documentation The **ClankerPresaleAllowlist** pairs with the **ClankerPresaleEthToCreator** to give presale creators the ability to manage who can buy into a presale. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist#features) Features * **Merkle Root**: Presale owners can set a merkle root whose leaves specify buyers and their allowed ETH amounts. This merkle root can be updated at any point during a presale's lifetime. * **Per-address override**: Presale owners can override the merkle root on a per-address basis if desired. * **Blanket disable**: Presale owners can disable the allowlist at any point if they'd like to allow anyone to buy into the presale. The allowlist can also be re-enabled. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist#initializing-the-presale) Initializing the Presale To use this allowlist, at the point of presale creation, the presale creator needs to set the `startPresale()` function's `allowlist` argument to the address of the ClankerPresaleAllowlist. Presale creators can specify a merkle root at the time of creation. If it is not specified, no one will be able to buy into the presale until the presale owner takes a management action to allow buyers. Copy // format of initialization data struct AllowlistInitializationData { bytes32 merkleRoot; } // method to call on ClankerPresaleEthToCreator function startPresale( ... address allowlist, // set to the ClankerPresaleAllowlist address bytes calldata allowlistInitializationData // optional, abi encoded AllowlistInitializationData ) external onlyAdmin returns (uint256 presaleId); The OpenZeppelin MerkleProof Solidity library is used to verify the proof against the merkle root, with a JavaScript package available [herearrow-up-right](https://www.npmjs.com/package/@openzeppelin/merkle-tree) . The leaves are expected to be in the format of `(address buyer, uint256 allowedEthAmount)`. **Note**: This extension does not verify on-chain that the merkle root's leaves add up to the min or max ETH amount for the presale. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist#managing-the-presale) Managing the Presale Presale owners have three function they can call to manage presale buyers. [PreviousClankerPresaleEthToCreatorchevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator) [NextClankerHookchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook) Last updated 5 months ago * [Features](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist#features) * [Initializing the Presale](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist#initializing-the-presale) * [Managing the Presale](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist#managing-the-presale) sun-brightdesktopmoon Copy // presale owners can update the merkle root at any point function setMerkleRoot(uint256 presaleId, bytes32 merkleRoot) external; // presale owners can set overrides at any point function setAddressOverride( uint256 presaleId, address buyer, uint256 allowedAmount ) external; // presale owners can blanket enable/disable the allowlist at any point function setAllowlistEnabled(uint256 presaleId, bool enabled) external; sun-brightdesktopmoon --- # ClankerVault | Clanker Documentation The ClankerVault contract manages locked tokens from the Clanker contract. Only the Clanker contract can deposit tokens into the vault, and tokens can only be vaulted once. Each token has the `creatorAdmin` as the initial admin for the token. The token's address (emitted and returned from `deployToken()`) is used as the token parameter for all ClankerVault functions. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clankervault#user-functions) User Functions `withdraw()`: Allows users to withdraw tokens that have reached their unlock time Copy // note: will revert if not called by the token's admin function withdraw( address token, // Token to withdraw uint256 amount, // Withdrawal amount address to // Recipient address ) external {...} `editAllocationAdmin()`: Allows changing the token's admin Copy // note: will revert if not called by the token's admin function editAllocationAdmin( address token, // Token to modify address newAdmin // New administrator address ) external {...} [PreviousLpLockerv2chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/lplockerv2) [NextClankerToken v3.1.0 and v4.0.0chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/clankertoken-v3.1.0-and-v4.0.0) Last updated 12 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerHookDynamicFeeV2 | Clanker Documentation **ClankerHookDynamicFeeV2** operates the same as **ClankerHookDynamicFee** except that it inherits from **ClankerHookV2** instead of **ClankerHook**. See [**ClankerHookDynamicFee**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee) 's documentation for details. [PreviousClankerHookStaticFeeV2chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/clankerhookstaticfeev2) [NextMev Moduleschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules) Last updated 6 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # v3.1 | Clanker Documentation [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1#core-contracts) Core Contracts ----------------------------------------------------------------------------------------------------------------------------- Clanker consists of five main contracts: 1. **ClankerToken**: A Superchain compatible ERC20 contract. 2. **Clanker**: The primary contract responsible for token deployment, Uniswap V3 Pool creation, and single-sided liquidity position placement. Users can optionally perform an initial swap and deposit a portion of the token supply into a time-locked vault. 3. **ClankerDeployer**: A helper library which exists to reduce the code size of the Clanker contract. 4. **ClankerVault**: A contract for creators to manage and collect their locked tokens. 5. **LpLockerv2**: A contract for creators to manage and collect their portion of the trading fees generated from their token's pool. This contract is also used by the Clanker team to collect their portion of the trading fees. [PreviousAdministrative Permissionschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/administrative-permissions) [NextClanker (Direct Contract Deployments)chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments) Last updated 9 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # LpLockerv2 | Clanker Documentation The LpLockerv2 contract manages trading fees from the Clanker contract, with a 20/80 split between Clanker and token's interface / creator. Only the Clanker contract can deposit new liquidity position NFTs. The `tokenId` parameter is the token's associated liquidity position NFT ID (emitted and returned from `deployToken()`). ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/lplockerv2#user-functions) User Functions `updateCreatorRewardAdmin()`: Allows creator NFT admin to change the admin for their token Copy // note: will revert if not called by the token's admin function updateCreatorRewardAdmin( uint256 tokenId, // Token ID to update address newAdmin // New administrator address ) public {...} A similar function exists for the interface's reward recipient, `updateInterfaceRewardAdmin()`. `updateCreatorRewardRecipient()`: Allows creator NFT admin to update the reward recipient for their token Copy // note: will revert if not called by the token's admin function updateCreatorRewardRecipient( uint256 tokenId, // Token ID to update address newRecipient // New reward recipient ) public {...} A similar function exists for the interface's reward recipient, `updateInterfaceRewardRecipient()`. `claimRewards()`: Allows any address to claim accumulated trading fees Copy // note: callable by anyone function claimRewards( uint256 tokenId // Token ID for claiming rewards ) public {...} Claimed rewards are distributed with 20% going to Clanker and 80% split between the creator and the interface. If the reward recipient is set to the zero address for non-Clanker rewards, the Clanker receives all fees. [PreviousClanker (Direct Contract Deployments)chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments) [NextClankerVaultchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clankervault) Last updated 12 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerMevModule2BlockDelay | Clanker Documentation Clanker's fallback mev module, **ClankerMevModuleDelay**, exists when no other mev module is suitable for a chain. The module simply blocks swaps until 2 blocks after deployment. This delay is to prevent Clanker deployments from causing gas spikes. For example, when Clanker was deployed on v3, searchers caused a spike in the gas price of the network by attempting to search for deployments in the same block (documented [herearrow-up-right](https://x.com/0xdoug/status/1861662510023123030) ). The solution to this problem was to add a delay between when a pool was deployed and when it is swappable. Our initial MEV module, **ClankerMevModuleDelay**, is used to add a delay between when a pool is deployed and when it is enabled for searching. [PreviousMev Moduleschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules) [NextClankerSniperAuctionV0chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) Last updated 6 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerHookV2 | Clanker Documentation The [**ClankerHookV2**arrow-up-right](https://github.com/clanker-devco/v4.0-contracts/blob/main/src/hooks/ClankerHookV2.sol) contract is the abstract base class that the V2 hooks inherit from. It's a slight upgrade of **ClankerHook** with the following changes: * The maximum LP fee that users can specify is 10% instead of 30%. * Mev Modules are able to set the applied LP fee for a swap, with a maximum fee of 80%. If the Mev Module is trying to set a fee that is lower than what the pool would normally set the fee to, the module's change is ignored. The modules can still only run for up to 2 minutes. * At the time of token deployment, an external [**Pool Extension**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions) contract can be specified to be called during the Hook's `afterSwap` flow. The purpose of the extensions is to enable developers to perform per-swap fee automations such as: staking, buybacks of external tokens, and performance-based fee unlock thresholds. Only tokens deployed via the factory can add pool extensions. The other major change is the formatting of the deployment config's `PoolConfig.poolData` and swap `hookData` encoding. The previous version of **ClankerHook** did not expect this data to be in a specific shape, but **ClankerHookV2** expects the following format: Copy struct PoolInitializationData { address extension; // address of the pool extension bytes extensionData; // data to pass to the pool extension bytes feeData; // data to use to configure the pool's fees (specific to the hook) } It is now expected that swap `hookData`, if present, will be encoded in the following shape: Copy struct PoolSwapData { bytes mevModuleSwapData; // data to pass to the mev module bytes poolExtensionSwapData; // data to pass the the pool extension } [PreviousClankerHookDynamicFeechevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee) [NextPool Extensionschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions) Last updated 6 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerHookStaticFeeV2 | Clanker Documentation **ClankerHookStaticFeeV2** operates the same as **ClankerHookStaticFee** except that it inherits from **ClankerHookV2** instead of **ClankerHook**. See [**ClankerHookStaticFee**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookstaticfee) 's documentation for details. [PreviousPool Extensionschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions) [NextClankerHookDynamicFeeV2chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/clankerhookdynamicfeev2) Last updated 6 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # Get Token by Address | Clanker Documentation Copy GET https://www.clanker.world/api/get-clanker-by-address **Headers:** Copy x-api-key: your_api_key **Query Parameters:** Parameter Type Description `address` string Ethereum address of the Clanker token contract **Example Request:** Copy curl -X GET \ 'https://www.clanker.world/api/get-clanker-by-address?address=0x1bc0c42215582d5A085795f4baDbaC3ff36d1Bcb' \ -H 'x-api-key: your_api_key' ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address#response-format) Response Format **Example Response:** Copy { "data": { "id": 241400, "created_at": "2025-04-15T00:16:39.464442+00:00", "tx_hash": "0x581b54f7b59def7483eb0306d924f82910582d3d024f2dd9a2195341eacd43b9", "contract_address": "0x6270BCB5398927335AEf599EdD1CC666FcC77797", "name": "deployer", "symbol": "$deployer", "pool_address": "0x213264B1Bc0F39f705687fdaBe97E8b3F8B3455F", "cast_hash": "bankr deployment", "type": "clanker_v3_1", "pair": "WETH", "chain_id": 8453, "metadata": { "auditUrls": [], "description": "", "socialMediaUrls": [] }, "deploy_config": { "devBuyAmount": 0, "lockupPercentage": 0, "vestingUnlockDate": 0 }, "social_context": { "interface": "Bankr", "messageId": "bankr deployment", "id": "886870" "platform": "Farcaster" }, "requestor_fid": 886870, "deployed_at": "2025-04-15T00:16:35", "msg_sender": "0x2112b8456AC07c15fA31ddf3Bf713E77716fF3F9", "factory_address": "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382", "locker_address": "0x33e2Eda238edcF470309b8c6D228986A1204c8f9", "warnings": [], "pool_config": { "pairedToken": "0x4200000000000000000000000000000000000006", "tickIfToken0IsNewToken": -230400 }, "starting_market_cap": 9.870869513221747 }, } #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address#response-fields) Response Fields Field Type Description `data` object Container object for the Clanker token information #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address#token-object-fields) Token Object Fields Field Type Description id number Unique identifier for the token created\_at string ISO 8601 timestamp of token creation tx\_hash string Transaction hash of the deployment contract\_address string Token contract address requestor\_fid integer Farcaster ID of the token requestor name string Token name symbol string Token symbol img\_url string URL of the token's image pool\_address string Address of the token's liquidity pool cast\_hash string Associated Farcaster cast hash type string | null Token type identifier pair string | null Trading pair identifier presale\_id integer | null ID of associated presale if applicable chain\_id integer Blockchain chain ID metadata string Additional token metadata deploy\_config object Deployment configuration details: creator buy, creator vault, etc. social\_context object Social context of the token creation deployed\_at string Timestamp of token deployment msg\_sender string Address that sent the deployment transaction factory\_address string Address of the Clanker token factory conract locker\_address string Address of the Clanker token locker contract warnings array Array of warning flags. See "Warning Flags" section below starting\_market\_cap number Starting market cap of the pool denominated in the quote token pool\_config object Pool configuration details: quote token address and initial tick of the pool triangle-exclamation ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address#warning-flags) Warning Flags * `UNUSUAL_TICK` * WETH-denominated tokens with a starting market cap of < 1 ETH (WETH) * Non-WETH tokens listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) with pools that do not match the initial tick listed in that table * `UNUSUAL_PAIR_ADDRESS` * Tokens paired with a quote token not listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) * `MISSING_POOL_CONFIG` * Tokens with incomplete or missing pool configuration info. These are primary legacy tokens that were deployed with a standard configuration circle-info #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address#notes) Notes * The `created_at` timestamp is returned in UTC timezone * The `img_url` field provides a direct link to the token's image asset * The `requestor_fid` can be used to link to the token creator's Farcaster profile [PreviousDeploy Token (v4.0.0)chevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0) [NextGet Tokens Deployed by Addresschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerPresaleEthToCreator | Clanker Documentation Clanker's **ClankerPresaleEthToCreator** extension is a special type of presale where the raised funds go to the creator of the presale instead of being deposited into the liquidity pool. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#features) Features * **Price Discovery**: Creators can set a min and a max ETH goal to raise. The starting price of the token goes up as more people buy into the presale. * **Optional Allowlists**: Creators can opt to manage a merkle-root based allowlist with per-address overrides. See [**ClankerPresaleAllowlist**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist) for more details. * **Presale Tokens Lockup and Vesting**: Presale tokens must be locked up for a minimum of 7 days post token creation, with optional vesting on top. This is to help ensure smooth post-launch market dynamics. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#fees) Fees The Clanker team takes a 0% cut on raised funds for successful presales. All ETH raised goes directly to the creator. There is no fee for buyers on entering/exiting positions. circle-info This presale is not permissionless. If your team is interested in using this presale, please reach out to the Clanker team. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#creating-a-presale) Creating a Presale Presale creators need to provide the following to start a presale: * `**presaleDuration**`: Maximum amount of time to run the presale for. * `**maxEthGoal**`: Maximum amount of ETH to raise. If this number is hit, the presale stops accepting new bids and the token can be launched immediately. * `**minEthGoal**`: Minimum ETH goal to hit for a presale to be considered successful. The token can be launched if this minimum is hit after the presale duration has passed or if the presale owner requests it. * `**deploymentConfig**`: The token to deploy once a presale hits a success condition. This is a normal Clanker v4 deployment config with all features except the DevBuy fully accessible. The presale contract needs to be the last specified extension. * `**presaleOwner**`: Address used to claim raised ETH and to manage the optional allowlist. * `**lockupDuration**`: How long to lock up presale tokens for. Minimum 7-day lockup is required. * `**vestingDuration**` (optional): How long to vest the presale tokens for. The vesting is linear and starts after the lockup period has ended. For example, if this is set to 10 days and the lockup duration is set to 10 days, on day 15 half of the supply would be claimable and on day 20 the token becomes fully claimable. * `**allowlist**` (optional): Address of the allowlist module to use to manage the presale. * `**allowlistInitializationData**` (optional): ABI-encoded data to pass to the allowlist module if it exists. Each created presale receives a `presaleId`. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#participating-in-the-presale) Participating in the Presale #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#buying-into-a-presale) Buying into a Presale Buying into a presale is tax-free and is done with the `buyIntoPresale()` function. The `msg.value` sent is used to buy into the presale. If the amount of ETH sent exceeds a presale's maximum, the sender is refunded the excess. If the presale is using an allowlist which requires buyers to prove that they're approved to buy in with a certain amount of ETH, they can use the `buyIntoPresaleWithProof()` function which forwards the proof data to the allowlist module. Presale owners are able to actively change the amount of ETH a user can use to buy into the presale with. Owners are not able to revoke ETH for people who have already bought in. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#withdrawing-from-a-presale) Withdrawing from a Presale Users are able to withdraw their funds from a presale if the presale has failed or if the presale has not yet reached the maximum ETH goal. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#ending-a-presale) Ending a Presale Presales can end in either token deployment (success) or with all buyers being able to withdraw their funds tax-free (failed). Presales can be ended by calling the `endPresale()` function: Presale tokens can be deployed in three scenarios: 1. The `maxEthGoal` is hit at any point. 2. The `minEthGoal` was hit and the `presaleDuration` has passed. 3. The `minEthGoal` is hit and the presale owner requests it to end early. If in scenarios (1) or (2), the presale owner has a single day where they are the only entity who can deploy the token. Once this day buffer passes, anyone is able to select a salt and end the presale. If three days total have passed without anyone ending the presale, the presale is considered failed and buyers can recover their funds through the `withdrawFromPresale()` function. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#claiming-tokens) Claiming Tokens #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#claiming-tokens-1) Claiming Tokens Buyers of successful presales can claim their tokens through the `claimTokens()` function. The tokens will be available as the lockup and vesting durations pass. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#claiming-eth) Claiming ETH The `presaleOwner` is able to claim the raised ETH funds immediately after a presale has successfully deployed a token. [PreviousClankerUniv4EthDevBuychevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankeruniv4ethdevbuy) [NextClankerPresaleAllowlistchevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleallowlist) Last updated 3 months ago * [Features](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#features) * [Fees](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#fees) * [Creating a Presale](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#creating-a-presale) * [Participating in the Presale](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#participating-in-the-presale) * [Ending a Presale](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#ending-a-presale) * [Claiming Tokens](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/extensions/clankerpresaleethtocreator#claiming-tokens) sun-brightdesktopmoon Copy function startPresale( IClanker.DeploymentConfig memory deploymentConfig, uint256 minEthGoal, uint256 maxEthGoal, uint256 presaleDuration, address presaleOwner, uint256 lockupDuration, uint256 vestingDuration, address allowlist, bytes calldata allowlistInitializationData ) external onlyAdmin returns (uint256 presaleId); Copy function buyIntoPresale(uint256 presaleId) external payable; Copy function buyIntoPresaleWithProof(uint256 presaleId, bytes calldata proof) external payable; Copy function withdrawFromPresale( uint256 presaleId, uint256 amount, address recipient // address to receive the refunded ETH, can be the same as the msg.sender ) external; Copy function endPresale(uint256 presaleId, bytes32 salt) external; Copy function claimTokens(uint256 presaleId) external; Copy // only callable by the presaleOwner function claimEth(uint256 presaleId, address recipient) external; sun-brightdesktopmoon --- # ClankerMevDescendingFees | Clanker Documentation **ClankerMevDescendingFees** is a Mev module designed to impose higher fees on snipers. Deployers are able to specify a starting LP fee (up to 80%), an ending fee, and a time to descend (up to 2 minutes). Clanker's initial recommended configuration will start effective fees at 80% and descend to 5% over 30 seconds, after which the pool's normal fee behavior will commence. For the motivation behind these choices, see our [v4 sniper activity writeuparrow-up-right](https://paragraph.com/@clankerworld/clanker-v4_1-sniper-tech) . The fees decay following the formula: `fee = endingFee + feeRange * (timeDecay / timeToDecay)²`. Swaps are able to start in the second after deployment. ![](https://clanker.gitbook.io/clanker-documentation/~gitbook/image?url=https%3A%2F%2F3915497305-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fmb3xJRvIg7xvUwDkNt7y%252Fuploads%252FUFH3n9UgCDceO78AK7RM%252FScreenshot%25202025-08-22%2520at%252012.06.34%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3Dbab49900-a071-40cb-8c4e-5669879b3997&width=768&dpr=3&quality=100&sign=80674d18&sv=2) The fee applied to the swap is the LP's fee plus Clanker's additional 20% fee. Clanker's default starting market cap is $40k USD, and with the proposed starting fee of 80%, we're setting the starting price for snipers at a market cap of $200k. ![](https://clanker.gitbook.io/clanker-documentation/~gitbook/image?url=https%3A%2F%2F3915497305-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fmb3xJRvIg7xvUwDkNt7y%252Fuploads%252FOrjvgtmF3Xd2oZxSPqiI%252Ffee_market_cap_table.png%3Falt%3Dmedia%26token%3D6bfa0d67-bf91-4bcf-ae43-10c71a0ac699&width=768&dpr=3&quality=100&sign=7daddd4f&sv=2) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevdescendingfees#initialization) Initialization Token deployers can configure the fee parameters with the following struct: This config is set on the deployment struct as follows: [PreviousClankerSniperAuctionV0chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) [NextClankerSniperAuctionV2chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2) Last updated 6 months ago sun-brightdesktopmoon Copy struct FeeConfig { uint24 startingFee; // LP fee to start at uint24 endingFee; // LP fee to descend to uint256 secondsToDecay; // seconds to decay over } Copy address clankerMevDescendingFees; // address of the deployed MEV module IClanker.DeploymentConfig memory deploymentConfig; // setup the MEV module data IClankerMevDescendingFees.FeeConfig memory feeConfig = IClankerMevDescendingFees.FeeConfig({ startingFee: 666777, // 66%, 80% applied fee endingFee: 50000, // 5% secondsToDecay: 30 // 30 seconds }); deploymentConfig.mevModuleConfig.mevModule = address(clankerMevDescendingFees); deploymentConfig.mevModuleConfig.mevModuleData = abi.encode(feeConfig); sun-brightdesktopmoon --- # ClankerHookDynamicFee | Clanker Documentation The **ClankerHookDynamicFee** hook inherits from the **ClankerHook** and is used to set a dynamic fee for both the deployed token and the paired token. The math governing the dynamic fee took inspiration from Meteora's Dynamic Liquidity Market Maker's [fee modelarrow-up-right](https://docs.meteora.ag/product-overview/meteora-liquidity-pools/dlmm-overview/dynamic-fees) . The goal of the dynamic fee is to charge higher fees when there is volatility is present on the pool. We measure the volatility by simulating the price impact of a swap (measured in the difference between the `beforeTick` and `afterTick`) and applying a fee based on the magnitude. The resulting fee we apply is a mixture of the tick difference, recent swaps on the pool, and safeguards to prevent bot manipulation. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee#user-controlled-configuration-variables) User Controlled Configuration Variables The following configuration is used to control the range and sensitivity of the dynamic fees. The fee unit is in Uniswap BPS, where `1` = 1/100th of a basis point. A fee of 1% is represented by `10_000,` and a fee of 30% by `300_000`. Copy struct PoolDynamicConfigVars { uint24 baseFee; // the minimum LP fee to be taken on a swap uint24 maxLpFee; // the maximum LP fee to be taken on a swap uint256 referenceTickFilterPeriod; uint256 resetPeriod; int24 resetTickFilter; uint256 feeControlNumerator; // the denominator is set to 10_000_000_000 uint24 decayFilterBps; } Users are able to tune the dynamic fees as they choose, but we do provide a set of recommended configuration values on deployments through our website and API. We also have a spreadsheet that replicates this process and can provide it upon request. The following configuration is our current recommendation for tokens starting at a 10ETH marketcap: Copy IClankerHookDynamicFee.PoolDynamicConfigVars({ baseFee: 5000,// 0.5% minimum fee maxLpFee: 50000, // 5% max fee referenceTickFilterPeriod: 30 seconds, resetPeriod: 120 seconds, resetTickFilter: 200, // 2% price movement feeControlNumerator: 500000000, // Constant for scaling variable fee component decayFilterBps: 7500 // 75% decay after filter period }) ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee#dynamic-fee-calculation) Dynamic Fee Calculation The dynamic fee is calculated by the following equation: The `volatilityAccumulator` is a value that is updated on each swap and is calculated by the process described below. **Volatility Accumulator** The volatility accumulator is our way of measuring the amount of volatility on the pool. It is a value that is updated on each swap and is affected by recent swaps on the pool under different time frames. We use two lagging tick values, two time periods, and a decayed version of a previous volatility accumulator to calculate a swap's volatility accumulator. The equation for the volatility accumulator is: The values of `referenceTick` and `prevVR` are updated based on snapshots of pool activity captured by the lagging ticks and time periods. The two lagging tick values are: * `referenceTick`: When the `referenceTickFilterPeriod` has passed or if a `resetPeriod` has been triggered with a failing reset condition, this tick value is updated to the `beforeTick` of a swap. This tick value is kept the same until hitting one of these update conditions. * `resetTick`: This tick is updated to the `beforeTick` of a swap when the `referenceTick` is updated, and is additionally updated when the `resetPeriod` has passed and a swap's `beforeTick` is at least `resetTickFilter` ticks away from the `resetTick` (a passing reset condition). The two time periods and their uses are: * `referenceTickFilterPeriod`: If the previous swap was less than `referenceTickFilterPeriod` seconds away, we use the recorded `referenceTick` for the dynamic fee calculation instead of the `beforeTick` of the current swap. This prevents bots from avoiding the dynamic fee by cutting their swap into smaller swaps. * `resetPeriod`: If a `referenceTick` has not been updated for over `resetPeriod` seconds, we want to ensure that there is true volatility happening on the pool. The goal is to prevent bots from keeping the pool's fee high by sending in micro swaps to avoid updating the `referenceTick`. If the `resetPeriod` has passed and the `beforeTick`'s difference from the recorded `resetTick` is smaller than the `resetTickFilter` (a failing reset condition), we update both the `referenceTick` and `resetTick` to the `beforeTick` of the current swap to clear out the stored volatility. If the `resetPeriod` has passed and the `beforeTick`'s difference from the recorded `resetTick` is larger than the `resetTickFilter` (a passing reset condition), we only update the `resetTick` to the `beforeTick` of the current swap and keep the `referenceTick` the same. Additionally, the two time periods are used to determine the `prevVR` value. The `prevVR` is used to smooth volatility over a period of time and is set to a value when the `referenceTickFilterPeriod` has passed but the `resetPeriod` has not. The value is set to the last swap's volatility accumulator multiplied by the `decayFilterBps` value. The `prevVR` is set to zero when the `resetPeriod` passes with a failed condition or if a `resetPeriod` amount of time has passed without a swap. The same `prevVR` is used as long as the `referenceTick` has not been updated. Note: there is a slight drift between the simulated `afterTick` and the resulting `afterTick`. This is because the applied fee for the simulated swap is an estimate either reusing the previous swap fee or just the `prevVR` under some reset conditions. We deemed that this drift is acceptable for our intended outcomes. [PreviousClankerHookStaticFeechevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookstaticfee) [NextClankerHookV2chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2) Last updated 8 months ago * [User Controlled Configuration Variables](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee#user-controlled-configuration-variables) * [Dynamic Fee Calculation](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhook/clankerhookdynamicfee#dynamic-fee-calculation) sun-brightdesktopmoon Copy uint24 dynamicFee = MIN( (baseFee + (feeControlNumerator * (volatilityAccumulator ** 2)) / FEE_CONTROL_DENOMINATOR), maxLpFee ); Copy volatilityAccumulator = |afterTick - referenceTick| + prevVR; sun-brightdesktopmoon --- # Clanker (Direct Contract Deployments) | Clanker Documentation [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#deploying-a-token) Deploying a Token ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- Tokens are deployed through the Clanker contract using the `deployToken` function: Copy /** * Configuration settings for token creation */ struct RewardsConfig { uint256 creatorReward; address creatorAdmin; address creatorRewardRecipient; address interfaceAdmin; address interfaceRewardRecipient; } struct TokenConfig { string name; string symbol; bytes32 salt; string image; string metadata; string context; uint256 originatingChainId; } struct VaultConfig { uint8 vaultPercentage; uint256 vaultDuration; } struct PoolConfig { address pairedToken; int24 tickIfToken0IsNewToken; } struct InitialBuyConfig { uint24 pairedTokenPoolFee; uint256 pairedTokenSwapAmountOutMinimum; } struct DeploymentConfig { TokenConfig tokenConfig; VaultConfig vaultConfig; PoolConfig poolConfig; InitialBuyConfig initialBuyConfig; RewardsConfig rewardsConfig; } function deployToken(DeploymentConfig tokenConfig) external payable {...} function deployTokenWithCustomTeamRewardRecipient(DeploymentConfig tokenConfig, address teamRewardRecipient) external payable {...} ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#rewards-configuration) Rewards Configuration Rewards deployed through the launchpad are split as follows: * 20% to Clanker * Up to 80% to the Creator (set with the `creatorReward` parameter) * Remaining to the Interface (can be 0%) Four addresses must be specified for token deployment: * `creatorAdmin`: The address that will manage the creator's locked token supply, creator's portion of the trading fee rewards, the token's metadata, and the receiver of the initial supply purchase (the "creator buy") * `creatorRewardRecipient`: The address that will initially receive the creator's portion of the trading fee rewards * `interfaceAdmin`: The address that will manage the interface's trading fee rewards * `interfaceRewardRecipient`: The address that will initially receive the interface's portion of the trading fee rewards ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#token-configuration) Token Configuration The following parameters are required for token creation: * `name`: Token name * `symbol`: Token symbol * `image`: Token image * `metadata`: Token metadata (`creatorAdmin` can update this) * `context`: Additional token context containing information about who deployed the token (immutable) * `salt`: Address salt value to allow for token address customization * `originatingChainId`: Chain ID where the token's supply is deployed circle-info Tokens will be deployed with a fixed supply of 100,000,000,000. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#vault-configuration-optional) Vault Configuration (Optional) Users can lock a portion of the token supply in a vault with these parameters: * `vaultDuration`: Lock duration (minimum 30 days) * `vaultPercentage`: Percentage of supply to lock (maximum 30%) The `creatorAdmin` address will have administrative control over the locked tokens in the ClankerVault contract. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#pool-configuration) Pool Configuration After token creation, a 1% fee tiered Uniswap V3 Pool is deployed. The remaining non-vaulted token supply is then added as a single-sided liquidity position. Required parameters: * `tickIfToken0IsNewToken`: Initial token price in the pool * `pairedToken`: Token to pair with the new token The liquidity position's NFT is transferred to the LpLockerv2 contract, where each fee-receiving entity has control over who receives their portion of the trading fees. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#initial-swap-configuration-optional) Initial Swap Configuration (Optional) Users can perform an initial swap (a creator buy) using ETH (sent via `msg.value`). For non-WETH paired tokens, the contract first internally swaps ETH to the paired token (ETH -> pairedToken -> new token). Required parameters: * `msg.value`: ETH amount for the swap * `pairedTokenSwapAmountOutMinimum`: Minimum amount of paired tokens to receive if ETH is not the paired token * `pairedTokenPoolFee`: Pool fee for the ETH -> pairedToken swap The `creatorAdmin` address receives the new tokens purchased with the ETH sent. [Previousv3.1chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1) [NextLpLockerv2chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/lplockerv2) Last updated 12 months ago * [Deploying a Token](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#deploying-a-token) * [Rewards Configuration](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#rewards-configuration) * [Token Configuration](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#token-configuration) * [Vault Configuration (Optional)](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#vault-configuration-optional) * [Pool Configuration](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#pool-configuration) * [Initial Swap Configuration (Optional)](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1/clanker-direct-contract-deployments#initial-swap-configuration-optional) sun-brightdesktopmoon sun-brightdesktopmoon --- # Deployment Config | Clanker Documentation [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#token-deployment) Token Deployment ------------------------------------------------------------------------------------------------------------------------------------------------- Tokens are deployed through the permissionless deployToken() function on the Clanker factory. All fields are expected to be filled out and additional info for each section can be found in the section's subpage. Copy /** * Deployment function for new Clanker token launches. Callable by anyone. **/ function deployToken(DeploymentConfig memory deploymentConfig) external payable returns (address tokenAddress); /** * Configuration settings for token creation. Explanation of fields defined below. */ struct DeploymentConfig { TokenConfig tokenConfig; PoolConfig poolConfig; LockerConfig lockerConfig; MevModuleConfig mevModuleConfig; ExtensionConfig[] extensionConfigs; } struct TokenConfig { address tokenAdmin; string name; string symbol; bytes32 salt; string image; string metadata; string context; uint256 originatingChainId; } struct PoolConfig { address hook; address pairedToken; int24 tickIfToken0IsClanker; int24 tickSpacing; bytes poolData; } struct LockerConfig { address locker; // reward info address[] rewardAdmins; address[] rewardRecipients; uint16[] rewardBps; // liquidity placement info int24[] tickLower; int24[] tickUpper; uint16[] positionBps; bytes lockerData; } struct ExtensionConfig { address extension; uint256 msgValue; uint16 extensionBps; bytes extensionData; } struct MevModuleConfig { address mevModule; bytes mevModuleData; } ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#token-config) Token Config The following parameters are required for token creation: * `**tokenAdmin**`: The address that will manage the token's admin rights. * `**name**`: Token name. * `**symbol**`: Token symbol. * `**salt**`: Address salt value to allow for token address customization. * `**image**`: Token image. The tokenAdmin can update this. * `**metadata**`: Token metadata. The tokenAdmin can update this. * `**context**`: Additional token context containing information about who deployed the token. This is immutable. * `**originatingChainId**`: Chain ID where the token's supply is deployed. Supply is set to 100 billion tokens with 18 decimals. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#pool-config) Pool Config The following parameters are required for pool creation: * `**hook**`: The address of the hook to use for the pool. Must be an allowlisted hook on the factory. * `**pairedToken**`: The address of the paired token. * `**tickIfToken0IsClanker**`: The tick value to start the pool at as if the deployed token is the `token0`. The deployment configuration interface always assumes that the deployed token is `token0`, and if this is untrue the implementation handles the conversion. * `**tickSpacing**`: The tick spacing to use for the pool. * `**poolData**`: Additional pool data, specific to the hook being used. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#locker-config) Locker Config The lockers in v4 manage the placement of liquidity positions and the distribution of LP fees to the reward recipients. Fees are collected by locker contracts and are routed to the ClankerFeeLocker contract for users to claim. The following parameters are required for the liquidity locker creation: * `**locker**`: The address of the locker to use for the pool. Must be an allowlisted locker on the factory for the target pool. * `**rewardAdmins[]**`: The addresses of the admins who will be able to modify the reward recipients that match their index. * `**rewardRecipients[]**`: The addresses of the recipients who will be able to receive the portion of the LP fees that match their index. * `**rewardBps[]**`: The portion of the LP fees to be distributed to the recipients in basis points. Must sum to 10,000. * `**tickLower[]**`: The lower tick value to use for a liquidity position. * `**tickUpper[]**`: The upper tick value to use for a liquidity position. * `**positionBps[]**`: The portion of the pool's allocated token supply to be used for the liquidity position in basis points. Must sum to 10,000. * `**lockerData**`: Additional data to be passed to the locker, specific to the locker being used. See the [ClankerLpLockerFeeConversion](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockerfeeconversion) documentation for how to fill out this variable. Rewards are a tuple of `rewardAdmin`, `rewardRecipient`, and `rewardBps`. The `rewardRecipient` receives the trading fees in the ClankerFeeLocker and can be updated by the `rewardAdmin`. The `rewardBps` is the portion of fees, out of 10,000, for the recipient to receive. The total number of reward basis points must equal 10,000. The reward BPS distribution is not changeable post-token deployment and a maximum of 7 reward recipients are allowed per deployment. Liquidity positions are a tuple of `tickLower`, `tickUpper`, and `positionBps`. The `tickLower` is the lower tick value for a position and the `tickUpper` is the higher tick, both are assumed to be as if token0 is the deployed token, similar to the pool's starting tick. The `positionBps` array is used to determine how to split up the pool's token allocation among positions. The tick ranges all must be equal to or higher than the `tickIfToken0IsClanker` value, but otherwise are only constrained by normal tick rules. The positions do not have to be contiguous and can overlap. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#extension-config) Extension Config Extensions are contracts that can be used to add new functionality to the token deployment process. The following parameters are required for the extension creation: * `**extension**`: The address of the extension to use for the pool. Must be an allowlisted extension on the factory. * `**msgValue**`: The msg.value to send to the extension. * `**extensionBps**`: The amount of the token supply to be allocated to the extension in basis points. * `**extensionData**`: Additional data to be passed to the extension, specific to the extension being used. If the `msg.value` passed into the `deployToken()` function does not match the sum of the `msgValue` of the extensions, the deployment will revert. The maximum amount of the token supply allocatable to extensions is 90%. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#mev-module-config) MEV Module Config The following parameters are required for the MEV module creation: * `**mevModule**`: The address of the MEV module to use for the pool. Must be an allowlisted MEV module on the factory. * `**mevModuleData**`: Additional data to be passed to the MEV module, specific to the MEV module being used. [Previousv4chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4) [NextFee Management Contractschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts) Last updated 6 months ago * [Token Deployment](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#token-deployment) * [Token Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#token-config) * [Pool Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#pool-config) * [Locker Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#locker-config) * [Extension Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#extension-config) * [MEV Module Config](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/deployment-config#mev-module-config) sun-brightdesktopmoon sun-brightdesktopmoon --- # Get Tokens Deployed by Address | Clanker Documentation Copy GET https://www.clanker.world/api/tokens/fetch-deployed-by-address **Headers:** Copy x-api-key: your_api_key **Query Parameters:** Parameter Type Description `address` string Ethereum address to fetch tokens for `cursor` string key for pagination **Example Request:** Copy curl -X GET \ 'https://www.clanker.world/api/tokens/fetch-deployed-by-address?address=user_eth_address&cursor=eyJpZCI6IjIwMjUtMTEtMTlUMTM6MzA6NDcifQ==' \ -H 'x-api-key: your_api_key' ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#response-format) Response Format **Example Response:** Copy { "data": [\ {\ "id": 241400,\ "created_at": "2025-04-15T00:16:39.464442+00:00",\ "tx_hash": "0x581b54f7b59def7483eb0306d924f82910582d3d024f2dd9a2195341eacd43b9",\ "contract_address": "0x6270BCB5398927335AEf599EdD1CC666FcC77797",\ "name": "deployer",\ "symbol": "$deployer",\ "pool_address": "0x213264B1Bc0F39f705687fdaBe97E8b3F8B3455F",\ "cast_hash": "bankr deployment",\ "type": "clanker_v3_1",\ "pair": "WETH",\ "chain_id": 8453,\ "metadata": {\ "auditUrls": [],\ "description": "",\ "socialMediaUrls": []\ },\ "deploy_config": {\ "devBuyAmount": 0,\ "lockupPercentage": 0,\ "vestingUnlockDate": 0\ },\ "social_context": {\ "interface": "Bankr",\ "messageId": "bankr deployment",\ "id": "886870"\ "platform": "Farcaster"\ },\ "requestor_fid": 886870,\ "deployed_at": "2025-04-15T00:16:35",\ "msg_sender": "0x2112b8456AC07c15fA31ddf3Bf713E77716fF3F9",\ "factory_address": "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382",\ "locker_address": "0x33e2Eda238edcF470309b8c6D228986A1204c8f9",\ "warnings": [],\ "pool_config": {\ "pairedToken": "0x4200000000000000000000000000000000000006",\ "tickIfToken0IsNewToken": -230400\ },\ "starting_market_cap": 9.870869513221747\ },\ {\ "id": 241399,\ "created_at": "2025-04-15T00:15:37.032429+00:00",\ "tx_hash": "0x0088ae9400e6cc0de3414bd4b9ad13d68c6822b05a4895fa14a4181cb0ef4b58",\ "contract_address": "0x6B2B40bF4c0c6734fd738f7090e8D694C817e91D",\ "name": "Pokemon",\ "symbol": "PKMON",\ "img_url": "https://pbs.twimg.com/media/GogsV0mWIAA6YnY.jpg",\ "pool_address": "0xf8827866d4bd7a8Ef237a457d5924C87E702Da81",\ "cast_hash": "https://twitter.com/millionbby12/status/1911936222257197369",\ "type": "clanker_v3_1",\ "pair": "WETH",\ "chain_id": 8453,\ "metadata": {\ "auditUrls": [],\ "description": "Deployed using Bankr on X",\ "socialMediaUrls": []\ },\ "deploy_config": "{\"devBuyAmount\":0,\"lockupPercentage\":0,\"vestingUnlockDate\":0}",\ "social_context": "{\"interface\":\"Bankr\",\"messageId\":\"https://twitter.com/millionbby12/status/1911936222257197369\",\"id\":\"886870\"}",\ "requestor_fid": 886870,\ "deployed_at": "2025-04-15T00:15:33",\ "msg_sender": "0x2112b8456AC07c15fA31ddf3Bf713E77716fF3F9",\ "factory_address": "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382",\ "locker_address": "0x33e2Eda238edcF470309b8c6D228986A1204c8f9",\ "warnings": [],\ "pool_config": {\ "pairedToken": "0x4200000000000000000000000000000000000006",\ "tickIfToken0IsNewToken": -230400\ },\ "starting_market_cap": 9.870869513221747\ },\ ], "hasMore": true, "total": 55 } #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#response-fields) Response Fields **Top-Level Fields:** Field Type Description `data` array Array of token objects `hasMore` boolean Indicates if there are more pages of results `total` integer Total number of tokens deployed by the address **Data Object Fields:** Field Type Description id number Unique identifier for the token created\_at string ISO 8601 timestamp of token creation tx\_hash string Transaction hash of the deployment contract\_address string Token contract address requestor\_fid integer Farcaster ID of the token requestor name string Token name symbol string Token symbol img\_url string URL of the token's image pool\_address string Address of the token's liquidity pool cast\_hash string Associated Farcaster cast hash type string | null Token type identifier pair string | null Trading pair identifier presale\_id integer | null ID of associated presale if applicable chain\_id integer Blockchain chain ID metadata string Additional token metadata deploy\_config object Deployment configuration details: creator buy, creator vault, etc. social\_context object Social context of the token creation deployed\_at string Timestamp of token deployment msg\_sender string Address that sent the deployment transaction factory\_address string Address of the Clanker token factory conract locker\_address string Address of the Clanker token locker contract warnings array Array of warning flags. See "Warning Flags" section below starting\_market\_cap number Starting market cap of the pool denominated in the quote token pool\_config object Pool configuration details: quote token address and initial tick of the pool ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#warning-flags) Warning Flags * `UNUSUAL_TICK` * WETH-denominated tokens with a starting market cap of < 1 ETH (WETH) * Non-WETH tokens listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) with pools that do not match the initial tick listed in that table * `UNUSUAL_PAIR_ADDRESS` * Tokens paired with a quote token not listed in [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) * `MISSING_POOL_CONFIG` * Tokens with incomplete or missing pool configuration info. These are primary legacy tokens that were deployed with a standard configuration ### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#best-practices) Best Practices 1. Cache responses when appropriate to minimize calls 2. Handle null values for optional fields like `img_url` 3. Validate Ethereum addresses before making requests [PreviousGet Token by Addresschevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address) [Next\[DEPRECATED\] Get Estimated Rewardschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/deprecated-get-estimated-rewards) Last updated 3 months ago * [Response Format](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#response-format) * [Warning Flags](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#warning-flags) * [Best Practices](https://clanker.gitbook.io/clanker-documentation/authenticated/get-tokens-deployed-by-address#best-practices) sun-brightdesktopmoon sun-brightdesktopmoon --- # Mev Modules | Clanker Documentation Clanker v4.0.0 introduces the ability to modify a pool's behavior at the time of deployment through different MEV modules. The goal of these modules is to lessen the negative impact that snipers have on users. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules#functionality) Functionality MEV modules are specified on pool deployment and are enabled after a token has finished deploying. This happens after extensions have finished executing to allow extensions to either make swaps or add liquidity to the pool. MEV Modules are active until they disable themselves or expire after 2 minutes. We have this expiry period as a safeguard in case the pool's underlying sequencer environment changes and the MEV module breaks. Additionally, liquidity adds are restricted during the MEV module's operation, as we want to reserve the ability to use the `donate()` function to send payments to only the beneficiaries of the original LP position. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules#current-mev-modules) Current Mev Modules Clanker has four mev modules currently written: **v4.0, ClankerHook**: * [**ClankerMev2BlockDelay**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevmodule2blockdelay) : Prevents swaps on freshly deployed pools for 2 blocks to stop snipers from trying to search in the same block of deployment. * [**ClankerSniperAuctionV0**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) : Auctions off the first few swaps for freshly deployed pools, giving the auction proceeds to creators. **v4.1, ClankerHookV2**: * [**ClankerMevDescendingFees**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevdescendingfees) : A MEV module which enables deployers to select a starting LP fee (up to 80%), an ending fee, and a duration to decay the fee over (max 2 mintues). The fee descends parabolically. Only compatible with **ClankerHookV2**. * [**ClankerSniperAuctionV2**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2) : The same as ClankerSniperAuctionV0 but with the fee behavior of ClankerMevDescendingFees. Auctioned swaps pay the starting fee and the fee descent starts after the auction ends. Only compatible with **ClankerHookV2**. [PreviousClankerHookDynamicFeeV2chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/clankerhookdynamicfeev2) [NextClankerMevModule2BlockDelaychevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevmodule2blockdelay) Last updated 6 months ago * [Functionality](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules#functionality) * [Current Mev Modules](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules#current-mev-modules) sun-brightdesktopmoon sun-brightdesktopmoon --- # Pool Extensions | Clanker Documentation Pool Extensions are a **ClankerHookV2** feature that enables users to specify custom logic to run in the hook's `afterSwap()` flow. The custom logic must reside in an external contract that implements the [`IClankerHookV2PoolExtension`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/main/src/hooks/interfaces/IClankerHookV2PoolExtension.sol) interface. The Clanker Team must approve pool extensions before they are used, feel free to reach out to us during the design process so we can give feedback. We expect most Pool Extensions to perform actions with the pool's generated fees, but the end logic is up to the token's deployer. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#examples-of-pool-extension-capabilities) Examples of Pool Extension Capabilities Pool Extensions can perform various actions, including: * **Token swapping**: Use generated fees from one of the token's specified reward recipients to purchase a different token. See our [`UniV3SwapExtension`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/main/src/hooks/pool-extension-examples/UniV3SwapExtension.sol) or [`UniV4SwapExtension`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/main/src/hooks/pool-extension-examples/UniV4SwapExtension.sol) as examples of using generated WETH fees to swap for a different token. * **Fee distribution**: Split the generated fees between people who stake a token on the extension contract or between people who have swapped on the pool. * **Conditional fee unlocking**: Unlock the generated fees only if the pool reaches and sustains a certain market cap. These are just examples, and we'll update this list as people develop interesting implementations. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#security-limitations) Security Limitations For security reasons, Pool Extensions are limited in what they can do. Pool Extensions **cannot**: * **Stop a swap**: Pool Extensions cannot prevent a swap from occurring. If the Pool Extension reverts, the swap will complete normally. This is because we do not want pool extensions to break and prevent users from exiting their positions. * **Modify a swap**: Pool Extensions cannot modify the swap's LP fee or balance deltas. Additionally, pool extensions run after a swap completes, meaning you cannot use a pool extension to front-run swaps. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#pool-extension-partial-swap-coverage) Pool Extension Partial Swap Coverage Not all swaps made on a pool will trigger the pool extension. There are two types of swaps which will not cause the pool extensions to be called out to: 1. Swaps made during the token's factory level extensions. For example, the swap made during the `ClankerUniv4EthDevBuy` logic will not trigger the pool extension. This is due to the pool extenion's second initialization call, `initializePostLockerSetup()`, occurring after a token's extensions are called. 2. Swaps made during the hook's fee conversion process. If a LP fee needs to be converted by the [ClankerLpLockerFeeConversion](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/fee-management-contracts/clankerlplockerfeeconversion) contract, the fee conversion swap will not trigger the pool extension. This ensures that a pool extension is only called once per user-level swap. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#initialization) Initialization Pool Extensions must be specified during a token's deployment and cannot be modified afterward. The address of the Pool Extension and initialization data can be set on the [`IClankerHookV2.PoolInitializationData`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/main/src/hooks/interfaces/IClankerHookV2.sol) struct, as shown below: #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#example-encoding) Example Encoding Here's an example of encoding on the higher-level token deployment struct: #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#initialization-functions) Initialization Functions Two initialization functions are triggered during a Pool Extension's setup: one called during the pool's initialization function and one during the later Mev module's initialization step. The first call receives the `extensionData` from above, and the second receives the `IClankerLpLocker` address, which can be queried to retrieve information about the token's fee configuration. See the two initialization functions below: ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#runtime-logic) Runtime Logic For every swap on a pool, the ClankerHookV2 implementation will attempt to run the pool's extension if one exists. Most available information about the swap is passed into the Pool Extension's `afterSwap()` implementation: #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#hook-data-support) Hook Data Support Optionally, a Pool Extension can operate on data passed into the `hookData` field of the PoolManager's `swap()` function. Not all swap routers support `hookData` today, so this information would most likely only be present for swaps coming through custom frontends or mini apps. The `poolExtensionSwapData` needs to be encased in the `IClankerHookV2`'s `PoolSwapData`, which accommodates both the MEV module's and pool extension's custom data: **Important**: It is difficult to determine the identity of the swapper. The `tx.origin` can be an account abstraction entity, and the swap's normal `msg.sender` is typically a router. We recommend using the `poolExtensionSwapData` feature to pass in a swapper's identity if needed and otherwise assuming a best-effort level of identifying swappers. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#legal-disclaimer) Legal Disclaimer Please consult your lawyers before deployment. Clanker takes no responsibility for activities taking place in Pool Extensions. [PreviousClankerHookV2chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2) [NextClankerHookStaticFeeV2chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/clankerhookstaticfeev2) Last updated 5 months ago * [Examples of Pool Extension Capabilities](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#examples-of-pool-extension-capabilities) * [Security Limitations](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#security-limitations) * [Pool Extension Partial Swap Coverage](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#pool-extension-partial-swap-coverage) * [Initialization](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#initialization) * [Runtime Logic](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#runtime-logic) * [Legal Disclaimer](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/clankerhookv2/pool-extensions#legal-disclaimer) sun-brightdesktopmoon Copy struct PoolInitializationData { address extension; // address of the pool extension bytes extensionData; // initialization data to pass to the pool extension bytes feeData; // data used to configure the pool's fees (specific to the static/dynamic fee logic) } Copy // token deployment struct passed into deployToken() IClanker.DeploymentConfig memory deploymentConfig; // fill out to specify a pool extension deploymentConfig.poolConfig.poolData = abi.encode( IClankerHookV2.PoolInitializationData({ extension: address(univ3SwapBackExample), // pool extension's address extensionData: abi.encode(""), // pool extension's custom initialization data // fee-specific info feeData: ... }) ); Copy interface IClankerHookV2PoolExtension { // initialize the user extension, called once by the hook per pool during pool initialization flow function initializePreLockerSetup( PoolKey calldata poolKey, bool clankerIsToken0, bytes calldata poolExtensionInitData ) external; // initialize the user extension, called once by the hook per pool after the locker is set up, // during the MEV module initialization flow function initializePostLockerSetup( PoolKey calldata poolKey, address locker, bool clankerIsToken0 ) external; } Copy interface IClankerHookV2PoolExtension { // after a swap, the pool extension is called to perform any post-swap actions function afterSwap( PoolKey calldata poolKey, IPoolManager.SwapParams calldata swapParams, BalanceDelta delta, // positive if owed to the caller, negative if owed to the pool bool clankerIsToken0, bytes calldata poolExtensionSwapData // the extension's portion of the hookData ) external; } Copy struct PoolSwapData { bytes mevModuleSwapData; // abi-encoded MEV module swap data bytes poolExtensionSwapData; // abi-encoded pool extension swap data } sun-brightdesktopmoon --- # Administrative Permissions | Clanker Documentation Clanker as a whole aims to be permissionless where possible and is committed to decentralization. All of our contracts currently either have no owner or are owned by Clanker's team multisig. Any 'admin' role can be assumed to be controlled by either Clanker multisigs or EOAs. None of the contracts are upgradeable. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/administrative-permissions#clanker.sol) Clanker.sol Role: `Owner` Permissions: * Add/remove admins via `setAdmin()`. * Initialize the contract with `teamFeeRecipient` addresses, can only be done once. * Pause supplied token deployments with `setDeprecated()`. * Change the `teamFeeRecipient` via `setTeamFeeRecipient()`. * All of admin's capabilities Role: `Admin` Permissions: * Claim protocol fees to `teamFeeRecipient` via `claimTeamFees()`. * Enable/disable hooks via `setHook()`. * Enable/disable extensions via `setExtension()`. * Enable/disable mev modules via `setMevModule()`. * Enable/disable lockers via `setLocker()`. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/administrative-permissions#clankerlplockermultiple.sol-clankerlplockerfeeconversion.sol) ClankerLpLockerMultiple.sol, ClankerLpLockerFeeConversion.sol Role: `Owner` Permissions: * Withdraw ETH sent to the contract by accident via `withdrawEth()`. * Withdraw ERC20s sent to the contract by accident via `withdrawERC20()`. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/administrative-permissions#clankerfeelocker.sol) ClankerFeeLocker.sol Role: `Owner` Permissions: * Add additional depositors via `addDepositor()`. #### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/administrative-permissions#no-administrative-permissions) No Administrative Permissions Clanker has no administrative abilities on the following contracts: * ClankerHook.sol * ClankerStaticHook.sol * ClankerDynamicHook.sol * ClankerAirdrop.sol * ClankerVault.sol * ClankerUniv4EthDevBuy.sol * ClankerMevBlockDelay.sol * ClankerToken.sol [PreviousClankerSniperAuctionV2chevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2) [Nextv3.1chevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v3.1) Last updated 8 months ago sun-brightdesktopmoon sun-brightdesktopmoon --- # ClankerSniperAuctionV0 | Clanker Documentation **ClankerSniperAuctionV0** is a mev module that allows snipers to bid for the right to execute the next swap on a freshly deployed pool. At deployment, a maximum of 5 auctions can run per pool, with one auction occurring every 2 blocks. If an auction block passes without any valid bids, the auction is disabled and normal swaps can execute. The original design doc can be found [herearrow-up-right](https://hackmd.io/@lobstermindset/rkwlyMpkgl) . The following contracts are a part of this setup: * [`ClankerSniperAuctionV0.sol`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/main/src/mev-modules/ClankerSniperAuctionV0.sol) : `IClankerMevModule` instance running Clanker's first version of a sniper auction. * [`ClankerSniperUtilV0.sol`arrow-up-right](https://github.com/clanker-devco/v4-contracts/blob/main/src/mev-modules/sniper-utils/ClankerSniperUtilV0.sol) : Auxiliary helper contract providing an example of how snipers can interact with the auction process. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#how-it-works) How It Works The auction leverages the fact that Base uses priority ordering, meaning transactions with higher gas fees are placed before others. The auction module records the gas price each time the auction resets and uses an inflated version as the "starting" gas price for the auction. The amount of WETH collected as payment is a multiple of the difference between the winning transaction's gas price and the inflated gas price. The inflated gas price, next auction block, and current auction round can be found by querying the contract and can be easily replicated off-chain. The auction payments are split between the token's reward recipients and the Clanker factory at a 80/20 split. The following auction configuration variables are of importance to snipers: * `blocksBetweenDeploymentAndFirstAuction`: The number of blocks between the pool's deployment and the first auction. * `blocksBetweenAuction`: The number of blocks between subsequent auctions. * `maxRounds`: The maximum number of auctions that can run per pool. * `paymentPerGasUnit`: The amount of WETH to pay per gas unit above the gas peg for an auction. All of these variables are queryable on the `ClankerSniperAuctionV0` contract and can be changed by the Clanker team with advanced notice. The following auction state variables are of importance to snipers and are queryable per PoolId: * `round`: The current auction round. * `nextAuctionBlock`: The block number at which the next auction will accept bids at. * `gasPeg`: The gas price which the next round of the auction will start at. The following auction events are of importance to snipers and are emitted by the `ClankerSniperAuctionV0` contract: ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#example-auction-iteration) Example Auction Iteration A pool is deployed in block 1 with a base fee of 10 gwei. The first auction round occurs in block 3 with a starting auction gas price of 12 gwei. Three snipers attempt to snipe with the following configurations: * **Sniper A** sets their transaction gas price to 13 gwei, approves a WETH payment of 0.0001 ether, and lands in block 3 * **Sniper B** sets their transaction gas price to 15 gwei, approves a WETH payment of 0.0003 ether, and lands in block 3 * **Sniper C** sets their transaction gas price to 17 gwei, approves a WETH payment of 0.0005 ether, and lands in block 4 **Result:** Sniper B wins since Sniper C landed in the wrong block. The auction module uses block 3's actual gas price of 11 gwei to set the starting gas price for round 2 to 13 gwei, with bids being accepted in block 5. Note: the first auction parameters set by the Clanker team have the blocks between the first auction and deployment and subsequent auctions set to 2. These can be changed to different values after we get more data on the auction's performance. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#clankersniperutilv0-contract) ClankerSniperUtilV0 Contract The `ClankerSniperUtilV0` contract is a shared utility for snipers to bid in auctions and serves as a user-facing example of how bidding works. It handles approval spending, round management, and encoding the auction swap's hook data. Snipers are welcome to rewrite and redeploy the utility themselves, as it is auxiliary to the auction setup itself. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#example-usage) Example Usage ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#disclaimer) Disclaimer Clanker reserves the right to upgrade to other auction versions depending on the usage of V0 and to change V0's configuration. We will give advanced warning of upgrades, but we may toggle how many blocks between auctions are ran and the payment multiplier. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#warning-on-approving-clankersniperauctionv0-to-spend-weth) Warning on Approving `ClankerSniperAuctionV0` to spend WETH We do NOT recommend approving `ClankerSniperAuctionV0` to spend WETH unless you have an auxiliary contract handling the approval that reverts if the bid is not won. For example, if an EOA approves the auction contract to spend WETH, anyone can spend the EOA's WETH by passing in the EOA's address as the `auctionData` parameter to the `ClankerSniperAuctionV0::beforeSwap` function. We've provided the `ClankerSniperUtilV0` contract as an example of how to handle this. [PreviousClankerMevModule2BlockDelaychevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevmodule2blockdelay) [NextClankerMevDescendingFeeschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevdescendingfees) Last updated 6 months ago * [How It Works](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#how-it-works) * [Example Auction Iteration](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#example-auction-iteration) * [ClankerSniperUtilV0 Contract](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#clankersniperutilv0-contract) * [Example Usage](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#example-usage) * [Disclaimer](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#disclaimer) * [Warning on Approving ClankerSniperAuctionV0 to spend WETH](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0#warning-on-approving-clankersniperauctionv0-to-spend-weth) sun-brightdesktopmoon Copy // emitted when a new auction is initialized with the first round's parameters event AuctionInitialized( PoolId indexed poolId, uint256 gasPeg, uint256 indexed auctionBlock, uint256 round ); // emitted when an auction is reset, with the next round's parameters event AuctionReset( PoolId indexed poolId, uint256 gasPeg, uint256 indexed auctionBlock, uint256 round ); // emitted when a sniper wins an auction event AuctionWon(PoolId indexed poolId, address indexed payee, uint256 paymentAmount, uint256 round); // emitted when the gas payment expectation is updated // note: advanced warning will be given, will not be updated often event SetPaymentPerGasUnit(uint256 oldPaymentPerGasUnit, uint256 newPaymentPerGasUnit); Copy // addresses of the sniper util and auction ClankerSniperAuctionV0 sniperAuction; ClankerSniperUtilV0 sniperUtil; // addresses of the deployed clanker token, paired token, and associated poolKey // (can be found on the TokenCreated event) address clankerToken; PoolKey memory clankerPoolKey; address pairedToken; // amount of the input token to swap uint256 amountIn = AMOUNT_TOKEN_TO_SWAP; // amount of eth to pay as bid (needs to be multiple of IClankerSniperAuctionV0.PAYMENT_PER_GAS_UNIT()) uint256 bidAmount = AMOUNT_TO_BID; // approve the sniper util to pull in the swap's input token IERC20(pairedToken).approve(address(sniperUtil), amountIn); // build the desired swap to run if the bid is winning IV4Router.ExactInputSingleParams memory swapParams = IV4Router.ExactInputSingleParams({ poolKey: poolKey, amountIn: uint128(amountIn), amountOutMinimum: 0, zeroForOne: pairedToken > clankerToken, // util will fill out, needs to be address to pull WETH bid payment from hookData: abi.encode("") }); // get token's gas peg uint256 gasPeg = sniperAuction.gasPeg(poolKey.toId()); // get next auction block uint256 nextAuctionBlock = sniperAuction.nextAuctionBlock(poolKey.toId()); // get current round uint256 round = sniperAuction.round(poolKey.toId()); // determine gas price that needs to be used to match desired payment amount uint256 txGasPrice = sniperUtil.getTxGasPriceForBidAmount(gasPeg, bidAmount); // bid in auction // NOTE: you need to land this in the correct block with the correct gas price, // this will be the hardest part of using the auction until we can get // bundle support on Base, please complain on twitter to the Flashbot / Base people // that we want transactions to be able to specify which block they land in :( sniperUtil.bidInAuction{value: bidAmount}(swapParams, round); sun-brightdesktopmoon --- # ClankerSniperAuctionV2 | Clanker Documentation **ClankerSniperAuctionV2** is the same as [**ClankerSniperAuctionV0**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv0) but with fee behavior similar to that of [**ClankerMevDescendingFees**](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevdescendingfees) . Deployers are able to specify a starting LP fee (up to 80%), an ending fee, and a time to descend (up to 2 minutes). Clanker's initial recommended configuration will start effective fees at 80% and descend to 5% over 30 seconds, after which the pool's normal fee behavior will commence. For the motivation behind these choices, see our [v4 sniper activity writeuparrow-up-right](https://paragraph.com/@clankerworld/clanker-v4_1-sniper-tech) . All auctioned swaps will pay the applied LP fee from the `FeeConfig.startingFee`, and the fee descent will start in the block that the auction concludes in. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2#initialization) Initialization **ClankerSniperAuctionV2**, unlike V0, requires configuration data to be passed in. The setup matches that of the **ClankerMevDescendingFees** module: Copy address clankerSniperAuctionV2; // address of the deployed mev module IClanker.DeploymentConfig memory deploymentConfig; // setup the mev module data IClankerMevDescendingFees.FeeConfig memory feeConfig = IClankerMevDescendingFees.FeeConfig({ startingFee: 666777, // 66%, 80% applied fee endingFee: 50000, // 5% secondsToDecay: 30 // 30 seconds }); deploymentConfig.mevModuleConfig.mevModule = address(clankerSniperAuctionV2); deploymentConfig.mevModuleConfig.mevModuleData = abi.encode(feeConfig); ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2#sniper-interactions) Sniper Interactions The interface to pass in swap data changed between **ClankerHook** and **ClankerHookV2**. For a swap's `hookData` to reach the Mev module, it needs to be encoded in the `PoolSwapData` struct: We made a new **ClankerSniperUtilV2** example implementation which performs the expected encoding and works with both versions of the sniper auction. ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2#warning-on-approving-clankersniperauctionv2-to-spend-weth) Warning on Approving `ClankerSniperAuctionV2` to spend WETH We do NOT recommend approving `ClankerSniperAuctionV2` to spend WETH unless you have an auxiliary contract handling the approval that reverts if the bid is not won. For example, if an EOA approves the auction contract to spend WETH, anyone can spend the EOA's WETH by passing in the EOA's address as the `auctionData` parameter to the `ClankerSniperAuctionV0::beforeSwap` function. We've provided the `ClankerSniperUtilV2` contract as an example of how to handle this. [PreviousClankerMevDescendingFeeschevron-left](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankermevdescendingfees) [NextAdministrative Permissionschevron-right](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/administrative-permissions) Last updated 5 months ago * [Initialization](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2#initialization) * [Sniper Interactions](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2#sniper-interactions) * [Warning on Approving ClankerSniperAuctionV2 to spend WETH](https://clanker.gitbook.io/clanker-documentation/references/core-contracts/v4/mev-modules/clankersniperauctionv2#warning-on-approving-clankersniperauctionv2-to-spend-weth) sun-brightdesktopmoon Copy struct PoolSwapData { bytes mevModuleSwapData; bytes poolExtensionSwapData; } sun-brightdesktopmoon --- # Deploy Token (v4.0.0) | Clanker Documentation `POST` `https://www.clanker.world/api/tokens/deploy` #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0#headers) **Headers** Name Value x-api-key `your_api_key` Content-Type `application/json` #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0#body) **Body** Parameter Type Required Description `token.name` string Required The name of your token `token.symbol` string Required Token symbol (usually 3-5 characters) `token.image` string Optional URL to the token's image `token.tokenAdmin` 0x${string} Required Token admin address with control over vaulted tokens and updating token metadata `token.description` string Optional Description of token for creators to provide `token.socialMediaUrls` array of `{ platform: string, url: string }` Optional URLs for external pages related to the token `token.auditUrls` array Optional Links to any audits, reports, etc. `token.requestKey` string Required Unique 32 character unique request identifier `rewards` array Required Array of reward configuration objects (at least one required) `rewards.admin` 0x${string} Required Address that can change the paired recipient `rewards.recipient` 0x${string} Required Address that will receive the rewards once claimed `rewards.allocation` number Required Percentage of rewards (total across all recipients should sum to 100) `rewards.rewardsToken` string Optional Token(s) in which the recipient will accrue rewards. Either "Both", "Clanker", or "Paired" `pool.type` strings Optional Either "standard" or "project" `pool.pairedToken` 0x${string} Optional Token address to pair the new token with (typically WETH). Only for standard `pool.type` `pool.initialMarketCap` number Optional Starting market cap denominated in pairedToken. Only for standard `pool.type` `fees.type` string Optional Fee type: either "static" or "dynamic" `fees.clankerFee` number Optional Fee percentage on Clanker token inputs, max 5 (5%). Only for static `fees.type` `fees.pairedFee` number Optional Fee percentage on pairedToken inputs, max 5 (5%). Only for static `fees.type` `fees.baseFee` number Optional Base fee charged on every swap, minimum 0.25 (0.25%). Only for dynamic `fees.type` `fees.maxLpFee` number Optional Maximum LP fee including base + variable fee, maximum 5 (5%). Only for dynamic `fees.type` `vault.percentage` number Optional Percentage of tokens to vault (max 90% total across all extensions) `vault.lockupDuration` number Conditional Lockup duration in days, minimum 7. Required if `vault.percentage` is provided `vault.vestingDuration` number Conditional Vesting duration in days, can be 0 for instant vesting. Required if `vault.percentage` is provided `airdrop.entries` array of `{ account: 0x...,` `amount: number }` Conditional Airdrop participants list of address and amount of tokens allocated `airdrop.lockupDuration` number Conditional Amount of days until the airdrop is claimable, minimum of 1 day `airdrop.vestingDuration` number Conditional Amount of days for the airdrop to to fully vest on a linear schedule `chainId` number optional chain to deploy the clanker token on. Options: 8453: Base (default) 130: Unichain 42161: Arbitrum One #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0#response) **Response** 200 400 #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0#example-request) **Example Request** cURL JavaScript #### [hashtag](https://clanker.gitbook.io/clanker-documentation/authenticated/deploy-token-v4.0.0#notes) **Notes** **Rewards Configuration** * At least one reward configuration is required. * Up to 7 total reward recipients are allowed. * Total allocation across all recipients must sum to 100 (100%). * Admin addresses can change the recipient address but allocation percentages are immutable. circle-exclamation With the v4.0.0 deployment endpoint, token creation interfaces must include their own reward configuration if they wish to receive any rewards for v4.0.0 tokens. * Each reward recipient may have a designated `rewardsToken` set. This specifies the token in which the recipient will accrue rewards in, irrespective of how the fees are set to be collected via the Fee Configuration. * Defaults * `rewardsToken` defaults to `Paired` , so rewards recipients will accrue rewards in only the paired token (typically WETH) **Pool Configuration (optional)** * Choose a paired token from the list of [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) along with the starting market cap of the token, denominated in the paired token. * Defaults * "Standard" pool configuration with single LP position. * Quote token is set to WETH (0x4200000000000000000000000000000000000006) if no `pairedToken` is provided. * Starting market cap is set to the Approximate Starting Market Cap column in the [Supported Quote Tokens](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) table if no `initialMarketCap` is provided. **Fee Configuration (optional)** * Choose either `static` or `dynamic` fee type, not both. * Static fees apply fixed percentages to specific token inputs (no min, 5% max). * Dynamic fees include a base fee plus variable fees based on volatility and are applied to equally to both token inputs (0.25% min, 5% max). * Defaults * Fee configuration defaults to a 1% static fee on both token inputs if not provided. * If `static` is selected, the static fee configuration defaults to a 1% static fee on both token inputs if not specified. * If `dynamic` is selected, the dynamic fee configuration defaults to a 0.5% base fee and 5% max LP fee if not specified. **Vault Extension (optional)** * Optional feature for locking tokens with configurable lockup and vesting periods. * Maximum 90% of total supply can be allocated across all extensions. * Minimum `lockupDuration` is 7 days, no minimum vesting duration. * There is no minimum `vestingDuration`, as setting `vestingDuration` to 0 allows all vaulted tokens to be claimed once `lockupDuration` ends. [PreviousAuthenticatedchevron-left](https://clanker.gitbook.io/clanker-documentation/authenticated) [NextGet Token by Addresschevron-right](https://clanker.gitbook.io/clanker-documentation/authenticated/get-token-by-address) Last updated 2 months ago sun-brightdesktopmoon Copy { "message": "Token deployment enqueued. Expected address: [contract_address]", "expectedAddress": "[contract_address]", "success": true } Copy { "data": [\ {\ "code": "validation_error",\ "path": ["field_name"],\ "message": "Description of the validation error"\ }\ ], "error": "Invalid input. See data for details." } Copy curl -X POST 'https://www.clanker.world/api/tokens/deploy/v4' \ -H 'Content-Type: application/json' \ -H 'x-api-key: your_api_key_here' \ -d '{ "token": { "name": "DemoToken", "symbol": "DEMO", "image": "https://example.com/demo-token-logo.png", "tokenAdmin": "0x742d35Cc6634C0532925a3b8D4C9db7cd4b5b31D", "description": "Clanker v4.0.0", "socialMediaUrls": [\ "https://x.com/demotoken",\ "https://t.me/demotoken"\ ], "auditUrls": [\ "https://example.com/audit-report-1.pdf",\ "https://example.com/security-review.pdf"\ ], "requestKey": "abcdef1234567890abcdef1234567890" }, "rewards": [\ {\ "admin": "0x742d35Cc6634C0532925a3b8D4C9db7cd4b5b31D",\ "recipient": "0x742d35Cc6634C0532925a3b8D4C9db7cd4b5b31D",\ "allocation": 50,\ "rewardsToken": "Both"\ },\ {\ "admin": "0x8ba1f109551bD432803012645Hac136c3c89d97c",\ "recipient": "0x8ba1f109551bD432803012645Hac136c3c89d97c",\ "allocation": 30,\ "rewardsToken": "Clanker"\ },\ {\ "admin": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",\ "recipient": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",\ "allocation": 20,\ "rewardsToken": "Paired"\ }\ ], "pool": { "type": "standard", "pairedToken": "0x4200000000000000000000000000000000000006", "initialMarketCap": 10 }, "fees": { "type": "static", "clankerFee": 1, "pairedFee": 1 }, "vault": { "percentage": 15, "lockupDuration": 30, "vestingDuration": 0 }, "airdrop": { "entries": [\ {\ "account": "0xD98124a9Fb88fC61E84575448C853d530a872674",\ "amount": 250000000\ }\ ], "lockupDuration": 30, "vestingDuration": 30 }, "chainId": 8453 }' Copy const deployToken = async () => { try { const response = await fetch('https://www.clanker.world/api/tokens/deploy/v4', { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': 'your_api_key_here' }, body: JSON.stringify({ token: { name: "DemoToken", symbol: "DEMO", image: "https://example.com/demo-token-logo.png", tokenAdmin: "0x742d35Cc6634C0532925a3b8D4C9db7cd4b5b31D", description: "Clanker v4.0.0", socialMediaUrls: [\ "https://x.com/demotoken",\ "https://t.me/demotoken"\ ], auditUrls: [\ "https://example.com/audit-report-1.pdf",\ "https://example.com/security-review.pdf"\ ], requestKey: "abcdef1234567890abcdef1234567890" }, rewards: [\ {\ admin: "0x742d35Cc6634C0532925a3b8D4C9db7cd4b5b31D",\ recipient: "0x742d35Cc6634C0532925a3b8D4C9db7cd4b5b31D",\ allocation: 50,\ rewardsToken: "Both"\ },\ {\ admin: "0x8ba1f109551bD432803012645Hac136c3c89d97c",\ recipient: "0x8ba1f109551bD432803012645Hac136c3c89d97c",\ allocation: 30,\ rewardsToken: "Clanker"\ },\ {\ admin: "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",\ recipient: "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",\ allocation: 20,\ rewardsToken: "Paired"\ }\ ], pool: { type: "standard", pairedToken: "0x4200000000000000000000000000000000000006", initialMarketCap: 10 }, fees: { type: "static", clankerFee: 1, pairedFee: 1 }, vault: { percentage: 15, lockupDuration: 30, vestingDuration: 0 } }) }); if (!response.ok) { const errorData = await response.json(); throw new Error(errorData.error || `HTTP error! status: ${response.status}`); } const data = await response.json(); console.log('Token deployment successful:', data); return data; } catch (error) { console.error('Token deployment failed:', error); throw error; } }; deployToken() .then(result => { console.log('Expected address:', result.expectedAddress); }) .catch(error => { console.error('Error:', error); }); sun-brightdesktopmoon --- # Deployed Contracts | Clanker Documentation [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#mainnet-deployments) Mainnet Deployments -------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#base-8453) Base: 8453 chevron-rightv4.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.1.0) Contract Contract Address ClankerHookDynamicFeeV2 0xd60D6B218116cFd801E28F78d011a203D2b068Cc ClankerHookStaticFeeV2 0xb429d62f8f3bFFb98CdB9569533eA23bF0Ba28CC ClankerSniperAuctionV2 0xebB25BB797D82CB78E1bc70406b13233c0854413 ClankerSniperUtilV2 0xC5AA2945d52a4096b946891ef8e01668f82eB74E ClankerAirdropV2 0xf652B3610D75D81871bf96DB50825d9af28391E0 ClankerPoolExtensionAllowlist 0xaa12bb11E9876FCAFc7c46dBEB985d3fA23832c9 chevron-rightv4.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.0.0) Contract Contract Address Clanker 0xE85A59c628F7d27878ACeB4bf3b35733630083a9 ClankerFeeLocker 0xF3622742b1E446D92e45E22923Ef11C2fcD55D68 ClankerLpLockerFeeConversion 0x63D2DfEA64b3433F4071A98665bcD7Ca14d93496 ClankerVault 0x8E845EAd15737bF71904A30BdDD3aEE76d6ADF6C ClankerAirdrop 0x56Fa0Da89eD94822e46734e736d34Cab72dF344F ClankerUniv4EthDevBuy 0x1331f0788F9c08C8F38D52c7a1152250A9dE00be ClankerMevBlockDelay 0xE143f9872A33c955F23cF442BB4B1EFB3A7402A2 ClankerSniperAuctionV0 0xFdc013ce003980889cFfd66b0c8329545ae1d1E8 ClankerSniperUtilV0 0x8806169969aE96bfaaDb3eFd4B10785BEEb321b3 ClankerHookDynamicFee 0x34a45c6B61876d739400Bd71228CbcbD4F53E8cC ClankerHookStaticFee 0xDd5EeaFf7BD481AD55Db083062b13a3cdf0A68CC ClankerLpLocker 0x29d17C1A8D851d7d4cA97FAe97AcAdb398D9cCE0 chevron-rightv3.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v3.1.0) Contract Contract Address Clanker 0x2A787b2362021cC3eEa3C24C4748a6cD5B687382 LpLockerv2 0x33e2Eda238edcF470309b8c6D228986A1204c8f9 ClankerVault 0x42A95190B4088C88Dd904d930c79deC1158bF09D chevron-rightv3.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v3.0.0) Contract Contract Address Clanker 0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E ClankerPreSale 0x71cDc0bDF30F5601fb0ac80Cf1d20B771342C035 LPLockerv2 0x5eC4f99F342038c67a312a166Ff56e6D70383D86 chevron-rightv2.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v2.0.0) Contract Contract Address Clanker 0x732560fa1d1A76350b1A500155BA978031B53833 LPLockerv2 0x618A9840691334eE8d24445a4AdA4284Bf42417D chevron-rightv1.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v1.0.0) Contract Contract Address Clanker 0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1 LockerFactory 0x18db5Fce22bE8814B7E31FBDA2f6488d607A1172 chevron-rightv0.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v0.0.0) Contract Contract Address SocialDexDeployer 0x250c9FB2b411B48273f69879007803790A6AeA47 LockerFactory 0x515d45F06EdD179565aa2796388417ED65E88939 ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#arbitrum-one-42161) Arbitrum One: 42161 chevron-rightv4.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.1.0-1) Contract Contract Address ClankerAirdropV2 0x8Cb6e0216e98A7ACF622DC2dD6a39F1b4FF37014 chevron-rightv4.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.0.0-1) Contract Contract Address Clanker 0xEb9D2A726Edffc887a574dC7f46b3a3638E8E44f ClankerFeeLocker 0x92C0DCbAba17b0F5f3a7537dA82c0F80520e4dF6 ClankerLpLockerFeeConversion 0xF3622742b1E446D92e45E22923Ef11C2fcD55D68 ClankerVault 0xa1da0600Eb4A9F3D4a892feAa2c2caf80A4A2f14 ClankerAirdrop 0x303470b6b6a35B06A5A05763A7caD776fbf27B71 ClankerUniv4EthDevBuy 0x70aDdc06fE89a5cF9E533aea8D025dB06795e492 ClankerMevBlockDelay 0x4E35277306a83D00E13e8C8A4307C672FA31FC99 ClankerHookDynamicFee 0xFd213BE7883db36e1049dC42f5BD6A0ec66B68cC ClankerHookStaticFee 0xf7aC669593d2D9D01026Fa5B756DD5B4f7aAa8Cc ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#unichain-130) Unichain: 130 chevron-rightv4.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.1.0-2) Contract Contract Address ClankerAirdropV2 0xE143f9872A33c955F23cF442BB4B1EFB3A7402A2 chevron-rightv4.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.0.0-2) Contract Contract Address Clanker 0xE85A59c628F7d27878ACeB4bf3b35733630083a9 ClankerFeeLocker 0x1d5A0F0BD3eA07F78FC14577f053de7A3FEc35B2 ClankerLpLockerFeeConversion 0x691f97752E91feAcD7933F32a1FEdCeDae7bB59c ClankerVault 0xA9C0a423f0092176fC48d7B50a1fCae8cf5BB441 ClankerAirdrop 0x35bfE89d95F26674bF06bB8bFE55f8D73E9280D2 ClankerUniv4EthDevBuy 0x267259e36914839Eb584e962558563760AE28862 ClankerMevBlockDelay 0x42A95190B4088C88Dd904d930c79deC1158bF09D ClankerHookDynamicFee 0x9b37A43422D7bBD4C8B231be11E50AD1acE828CC ClankerHookStaticFee 0xBc6e5aBDa425309c2534Bc2bC92562F5419ce8Cc ClankerSniperAuctionV0 0x78B512C5074a1084bf3b8e6cbA8a1710d2a8d0A2 ClankerSniperUtilV0 0xA25e594869ddb46c33233A793E3c8b207CC719a2 ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#mainnet-1) Mainnet: 1 chevron-rightv4.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.1.0-3) Contract Contract Address ClankerAirdropV2 0x303470b6b6a35B06A5A05763A7caD776fbf27B71 chevron-rightv4.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.0.0-3) Contract Contract Address Clanker 0x6C8599779B03B00AAaE63C6378830919Abb75473 ClankerFeeLocker 0xA9C0a423f0092176fC48d7B50a1fCae8cf5BB441 ClankerLpLockerFeeConversion 0x00C4b21889145CF0D99f2e05919103e0c3991974 ClankerVault 0xa1da0600Eb4A9F3D4a892feAa2c2caf80A4A2f14 ClankerAirdrop 0x303470b6b6a35B06A5A05763A7caD776fbf27B71 ClankerUniv4EthDevBuy 0x70aDdc06fE89a5cF9E533aea8D025dB06795e492 ClankerMevBlockDelay 0x33e2Eda238edcF470309b8c6D228986A1204c8f9 ClankerHookDynamicFee not supported ClankerHookStaticFee 0x6C24D0bCC264EF6A740754A11cA579b9d225e8Cc ClankerSniperAuctionV0 0x33e2Eda238edcF470309b8c6D228986A1204c8f9 ClankerSniperUtilV0 0x33e2Eda238edcF470309b8c6D228986A1204c8f9 [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#binance-97) Binance: 97 --------------------------------------------------------------------------------------------------------------------- chevron-rightv4.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.1.0-4) Contract Contract Address ClankerAirdropV2 0xBB0f069b995e0205cD5F92C84a1dF056a3F47900 chevron-rightv4.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.0.0-4) Contract Contract Address Clanker 0xea30438E0B5f99096cb05A8Da63be55A6A298F6a ClankerFeeLocker 0x67D04Ae42F03D9b63dE0E6F2d82bB186A0306bBb ClankerLpLockerFeeConversion 0x1166022e1becc70E7E9aB2250aF1aC7842B9B420 ClankerVault 0x15ee8382DBd8Fb991F653B59CA11bf504a07372D ClankerAirdrop 0xBB0f069b995e0205cD5F92C84a1dF056a3F47900 ClankerUniv4EthDevBuy 0x302989E1cA167B6E78f9711e5a08d1BD555DdAc4 ClankerMevBlockDelay 0x33e2Eda238edcF470309b8c6D228986A1204c8f9 ClankerHookDynamicFee 0x011a8ed40095F2D7E9c19125B8254b19678D68Cc ClankerHookStaticFee 0xC5d309026BCAb6630888d51CE21154AD2f4828cC mevModuleV2 0xec1310cf227a2D671176000aE0849DE6417b175a mevModule 0xEE2940CC010820B7F22DF627e081d707693989a6 [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#testnet-deployments) Testnet Deployments -------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#base-sepolia-84532) Base Sepolia: 84532 chevron-rightv4.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.1.0-5) Contract Contract Address ClankerHookDynamicFeeV2 0xBF4983dC0f2F8FE78C5cf8Fc621f294A993728Cc ClankerHookStaticFeeV2 0x11b51DBC2f7F683b81CeDa83DC0078D57bA328cc ClankerSniperAuctionV2 0x8CBD6694A9DFc0eF4D1cd333e013B88E7003E10A ClankerSniperUtilV2 0x4DC6348D38E3e199D7Ea032c8cfE4EbDe94b442A ClankerAirdropV2 0x5c68F1560a5913c176Fc5238038098970B567B19 ClankerPoolExtensionAllowlist 0x532d79D18F0F1782884662fCC1e74581A3289680 chevron-rightv4.0.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v4.0.0-5) Contract Contract Address Clanker 0xE85A59c628F7d27878ACeB4bf3b35733630083a9 ClankerFeeLocker 0x42A95190B4088C88Dd904d930c79deC1158bF09D ClankerLpLockerMultiple 0x33e2Eda238edcF470309b8c6D228986A1204c8f9 ClankerVault 0xcC80d1226F899a78fC2E459a1500A13C373CE0A5 ClankerAirdrop 0x29d17C1A8D851d7d4cA97FAe97AcAdb398D9cCE0 ClankerUniv4EthDevBuy 0x691f97752E91feAcD7933F32a1FEdCeDae7bB59c ClankerMevBlockDelay 0x71DB365E93e170ba3B053339A917c11024e7a9d4 ClankerHookDynamicFee 0xE63b0A59100698f379F9B577441A561bAF9828cc ClankerHookStaticFee 0xDFcCcfBeef7F3Fc8b16027Ce6feACb48024068cC ClankerSniperAuctionV0 0x261fE99C4D0D41EE8d0e594D11aec740E8354ab0 ClankerSniperUtilV0 0x8806169969aE96bfaaDb3eFd4B10785BEEb321b3 ClankerLpLockerFeeConversion 0x824bB048a5EC6e06a09aEd115E9eEA4618DC2c8f chevron-rightv3.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v3.1.0-1) Contract Contract Address Clanker 0x2A787b2362021cC3eEa3C24C4748a6cD5B687382 LpLockerv2 0xa1da0600Eb4A9F3D4a892feAa2c2caf80A4A2f14 ClankerVault 0xA9C0a423f0092176fC48d7B50a1fCae8cf5BB441 ### [hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#monad-testnet-10143) Monad Testnet: 10143 chevron-rightv3.1.0[hashtag](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#v3.1.0-2) Contract Contract Address Clanker 0xA0C65813DD1Cde7092922a57548Ec1eD25994318 LpLockerv2 0xcd89C55d36097a64f777066A6cc8F2c31B7541F7 ClankerVault 0x9505A57Bf782058890f078bE301575cD75045a9b [PreviousCompatible Trading Platformschevron-left](https://clanker.gitbook.io/clanker-documentation/references/compatible-trading-platforms) [NextSupported Quote Tokenschevron-right](https://clanker.gitbook.io/clanker-documentation/references/supported-quote-tokens) Last updated 14 days ago * [Mainnet Deployments](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#mainnet-deployments) * [Base: 8453](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#base-8453) * [Arbitrum One: 42161](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#arbitrum-one-42161) * [Unichain: 130](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#unichain-130) * [Mainnet: 1](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#mainnet-1) * [Binance: 97](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#binance-97) * [Testnet Deployments](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#testnet-deployments) * [Base Sepolia: 84532](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#base-sepolia-84532) * [Monad Testnet: 10143](https://clanker.gitbook.io/clanker-documentation/references/deployed-contracts#monad-testnet-10143) sun-brightdesktopmoon sun-brightdesktopmoon ---