Documentation Index
Fetch the complete documentation index at: https://docs.inkyswap.com/llms.txt
Use this file to discover all available pages before exploring further.
Anti-snipe on V2 is a captcha gate. It is not a fee penalty. The 2 percent fee stays constant for the full curve, including inside the anti-snipe window.
What anti-snipe does
When you launch a token, you can pick an anti-snipe window of 0, 20, 40, or 60 seconds. During this window, any buy or sell call that does not include a valid captcha signature reverts withCaptchaRequired().
The captcha is signed by an off chain signer that the InkyPump UI uses automatically. A normal user on inkypump.com does not see anything different. A bot that calls the contract directly cannot trade until the window ends.
After the window closes, the captcha check is skipped and anyone can trade without a signature.
The four options
antiSnipeDuration | Effect |
|---|---|
| 0 seconds | No anti-snipe. Anyone can trade from the first block. |
| 20 seconds | Brief gate. Good if you want to publish the contract address before opening up. |
| 40 seconds | Medium gate. |
| 60 seconds | The maximum. Useful for high profile launches where you expect bot pressure. |
What it actually protects against
It protects against scripts that watch the mempool and try to land a buy in the same block as the launch. Those scripts cannot produce the captcha signature, so their transactions revert. It does not protect against humans clicking fast on the UI. The UI gets the captcha signature automatically, so any human user can buy as soon as the launch is live.Who is exempt
The creator’s prebuy at launch (the optional ETH sent asmsg.value on createLaunch) bypasses the captcha check. This is because the creator’s prebuy is executed in the same transaction as createLaunch, before the anti-snipe window starts running.
How to set the duration at launch
The launch form on inkypump.com has an anti-snipe section with the four options as buttons. The selected value becomes theantiSnipeDuration field on the launch.
On chain you pass it as part of CreateLaunchParams:
uint32 so the contract accepts any value, but the UI restricts the choice to the four supported options.
How the gate is implemented
The check lives inLaunchTradingModule._verifyCaptcha:
duration == 0 (anti-snipe is off) and block.timestamp past the end of the window.