Bot User Guide
A complete reference for setting up and operating the Hypnosis mint bot, from first login to executing multi-wallet mint campaigns.
Overview
The Hypnosis Bot Console is a browser-native minting engine. It stores encrypted hot wallets in your browser's local storage, schedules transactions, and fires mint calls at the exact millisecond a drop opens, all without any backend server or external service holding your keys.
Custom Contract
Mint any ERC-721 contract by providing an ABI fragment and method signature.
OpenSea SeaDrop
Auto-detects public and token-gated phases on SeaDrop v1 contracts.
Phase Scheduler
Automatically waits for the phase start time fetched on-chain.
Multi-Wallet
Run independent tasks across unlimited imported hot wallets simultaneously.
Gas Control
Base (network rate), Custom (fixed), or Rapid (multiplier boost) modes.
Disperse ETH
Fund multiple wallets from a single source wallet in one operation.
Prerequisites
Before accessing the Bot Console you need to satisfy the following:
Connect a Web3 wallet using the Connect button in the sidebar. MetaMask, Coinbase Wallet, or any WalletConnect-compatible wallet works. This is your collector wallet. It does not need to hold ETH and is never used to sign transactions by the bot.
Stake at least one Hypnosis NFT in the Staking Vault (navigate to Staking Vault in the sidebar). The bot panel is gated: only addresses with an active staked NFT can access it.
Use a modern Chromium browser (Chrome, Brave, Edge). The engine relies on localStorage, sessionStorage, and the Web Crypto API, which are available in all modern browsers. Safari is supported but not recommended for wallet operations.
The bot stores encrypted private keys in your browser's local storage. Never use the bot console on a shared or public computer.
Security Password
All hot wallet private keys are encrypted with AES-256 using a password only you know. The password is never stored; only a verification token (encrypted with the same password) is kept to confirm correct entry.
Navigate to Settings in the sidebar.
Under Security Password, enter and confirm a strong password. Click Set Password.
On future visits, use Unlock Session to decrypt your session. Your session is locked automatically when you close the tab.
Use a password manager to generate and store a strong password (20+ characters). If you lose it, your encrypted wallet keys cannot be recovered. You would need to reset all bot data and re-import.
Clicking Reset All Bot Data in Settings permanently wipes all wallets, tasks, and history from this browser. There is no undo.
RPC Nodes
The bot submits transactions through JSON-RPC nodes. A default public Mainnet node is pre-configured, but for serious minting you should use a private node (Alchemy, Infura, QuickNode) to avoid rate limits and reduce latency.
Go to Settings → JSON-RPC Nodes.
Enter a name (e.g. Alchemy Mainnet) and paste your HTTPS RPC URL. Click Save RPC Node.
Click Test next to any node to measure its response latency. Green = under 150 ms, amber = 150–500 ms, red = offline.
When creating a task, select this node from the RPC Network dropdown. Each custom node appears as its own network group.
For Sepolia testnet minting, add a Sepolia RPC URL. The bot auto-detects the network from the URL and links Etherscan links accordingly.
Hot Wallets
Hot wallets are the signing wallets the bot uses to submit mint transactions. They are separate from your connected collector wallet. You can import existing wallets or generate fresh ones in bulk.
Importing a Wallet
Navigate to Bot Console → Hot Wallets tab.
Enter a display name and paste the wallet's private key (with or without the 0x prefix).
Click Import Wallet. The key is immediately encrypted and stored; the raw key is never persisted.
Batch Generating Wallets
Set a count (1–50) and a name prefix (e.g. Snipe → Snipe 1, Snipe 2…).
Click Generate Wallets. Fresh wallets are created using a cryptographically secure random source.
A backup modal appears immediately with all private keys. Click Download Keys and save the file securely before closing the modal. The keys cannot be retrieved again without your password.
After generating wallets, use the Disperse ETH feature to fund them all in one click before a mint. See the Disperse ETH section below.
Never use wallets that hold significant assets as hot wallets. Create dedicated minting wallets and only load them with the ETH needed for the drop plus gas.
Creating Tasks
Tasks are grouped into Task Groups. Create a group first, then add tasks to it. A group is just a named container; you can start, stop, and retry all tasks in a group with a single click.
Creating a Task Group
In the Tasks Console, click + New in the left panel.
Type a name (e.g. BAYC Drop) and press Enter or click ✓.
Task Templates
Click + New Task to open the task modal. Two quick-start templates are available:
Custom Contract
For any ERC-721 contract. Enter the contract address, ABI fragment (e.g. function mint(uint256 quantity)), method name, and parameters. The bot parses the fragment and builds the calldata automatically.
OpenSea SeaDrop
For contracts deployed with OpenSea's SeaDrop v1 standard. Only the contract address is required. The bot fetches the mint price and phase timing directly from the chain.
Task Fields Reference
| Field | Description |
|---|---|
| Contract Address | The NFT contract to mint from. |
| Engine Mode | Custom Contract or OpenSea SeaDrop. |
| Wallet | The hot wallet that will sign and pay for the transaction. |
| RPC Network | Which RPC node to submit the transaction through. |
| Quantity | Number of tokens to mint in a single transaction. |
| Mint Price | Price per token in ETH. Leave 0 for OpenSea (auto-fetched). |
| ABI Fragment | Custom Contract only, e.g. function mint(uint256 qty). Parsed automatically. |
| Method | Function name to call, e.g. mint or publicMint. |
| Parameters | Comma-separated param types, e.g. uint256 quantity, address to. |
| Gas Mode | See Gas Modes section below. |
| Schedule Time | Optional future datetime to delay execution until. |
Gas Modes
The bot supports three gas strategies. The right choice depends on how competitive the drop is.
Base
Uses the network's suggested maxFeePerGas and maxPriorityFeePerGas directly from the RPC node. Best for non-competitive drops where you don't want to overpay.
Custom
Set a fixed Max Fee and Max Priority (both in Gwei). Use this when you know the network conditions and want exact control over spending.
Rapid
Takes the Custom values and multiplies them by the Gas Multiplier (e.g. 1.5×). Use for high-competition drops where getting included in the next block matters more than gas cost.
The bot also estimates gas on-chain before sending (using estimateGas), then adds a 20% buffer. If estimation fails (meaning the transaction would revert), the task fails immediately with the revert reason, saving your ETH.
During the waiting phase, you can override the gas fee for all running tasks at once using the Speed Up box in the task console header. Enter a new Gwei value and click Speed Up. This is useful when network conditions spike right before mint time.
Running Tasks
Tasks have five statuses: Waiting, Running, Success, Failed, and Stopped.
Starting Tasks
Run (single): click the green Run button on any individual task row. The task runs immediately (or waits if scheduled).
Start All: click Start All in the group header to run every Waiting, Stopped, or Failed task in the group simultaneously. Already-succeeded tasks are skipped.
Retry Failed: re-queues only tasks in Failed status. Useful after a network error or failed estimation without affecting tasks that already succeeded.
Stopping Tasks
Click Stop on a running task to abort it. If the task is in a scheduled delay (waiting for mint time), it aborts cleanly. If the transaction was already sent to the network, stopping the task does not cancel the on-chain transaction.
Scheduling
In the Advanced tab of the task modal, enable Schedule Timeand pick a datetime. The task starts immediately, validates balance, then sleeps until the target time before firing. For OpenSea tasks, the phase start time is auto-fetched and used as the schedule if you don't set one manually; see the next section.
Keep this browser tab active while tasks are running. The bot engine runs in the browser JS context; if you close or navigate away from the tab, all running tasks are terminated.
OpenSea Phase Detection
For OpenSea SeaDrop tasks, the bot queries the SeaDrop v1 contract on-chain before executing to determine the best available phase for your wallet.
How it works
Public Drop: calls getPublicDrop to fetch the mint price, start time, and end time.
Token-Gated Phases: calls getAllowedNftTokens to find any gating collections. For each, it checks your wallet's balance. If you hold a token, it fetches the phase details via getTokenGatedDrop.
The bot selects the earliest active (or upcoming) phase. If it hasn't started yet, it automatically waits until the exact start time and then fires.
Token-gated phases typically have lower prices and earlier start times. If your hot wallet holds an eligible NFT, the bot will prefer the token-gated phase automatically and call mintAllowedTokenHolder instead of mintPublic.
Phase detection runs at task start, not at schedule time. If a task is scheduled far in advance, the phase lookup happens again right before execution.
Disperse ETH
The Disperse tool lets you fund all your hot wallets from a single source wallet in one operation, useful when you've just generated a batch of wallets and need to top them all up before a mint.
Go to Hot Wallets → Disperse ETH.
Select the Source Wallet (the funded wallet that will send ETH). Enter the amount to send to each target wallet.
Select target wallets using the checkboxes, or click Select All. The source wallet is automatically excluded from the target list.
Select an RPC Network and click Disperse. Transfers are sent sequentially to avoid nonce conflicts.
Make sure the source wallet has enough ETH to cover all transfers plus gas for each one. For N target wallets you need at least N × (amount + ~0.0003 ETH gas) in the source.
Discord Alerts
Set up a Discord webhook and the bot will post a rich embed to your server every time a task successfully mints, including the contract address, wallet name, ETH spent, and a clickable Etherscan link.
In Discord, go to your server's Channel Settings → Integrations → Webhooks. Create a new webhook and copy its URL.
In Settings → Discord Webhooks, paste the URL and click Save Webhook.
Alerts fire automatically on every successful mint. Failed tasks do not trigger a webhook.
The webhook URL is stored in your browser's local storage in plain text (it is not a secret and contains no signing credentials). Still, avoid sharing your browser storage with untrusted parties.
Troubleshooting
I see "Wrong password or corrupted wallet key".
You entered an incorrect app password on unlock. The password is case-sensitive. If you have genuinely forgotten it, go to Settings → Reset All Bot Data and start fresh (your keys will be lost).
Task fails with "Insufficient wallet balance".
The bot checks your balance before starting. It adds up the mint cost + estimated gas. Fund the hot wallet with more ETH, then retry the task.
OpenSea task fails with "estimation failed (likely revert)".
The contract rejected the simulated transaction. Common reasons: the phase hasn't opened yet, you've hit the per-wallet mint limit, the contract is paused, or you're not on an allowlist. Check the drop's conditions.
Custom Contract task fails with unknown ABI.
Make sure the ABI fragment exactly matches the contract's function signature. For example, if the contract defines publicMint(uint256 qty) you must enter that exact name and type. Copy the fragment from Etherscan's Write Contract tab.
Tasks stop when I switch tabs or minimize the browser.
Some browsers throttle or suspend JS execution for background tabs. Keep the bot tab in the foreground, especially during the final seconds before mint. Chrome and Brave are the most reliable for this.
The gas estimate shows a different value than what was actually charged.
The UI estimate is a rough preview using your configured Gwei and 150k (or 200k for OpenSea) gas units. The engine re-estimates on-chain at execution time and uses the real value + 20% buffer.
Speed Up didn't change my gas in time.
Speed Up updates the task configuration in storage. For OpenSea tasks it takes effect because gas is re-read at execution. For Custom Contract tasks, gas overrides are computed before the schedule sleep; Speed Up won't affect a task already past that point.
The staking badge in the sidebar flickers "Not Staked" briefly on load.
This is cosmetic. The sidebar checks staking status from the contract as soon as your wallet connects, and the brief false state resolves within one RPC response. The actual bot panel gate applies the correct check.
Hypnosis Bot Engine, handle with care