megapot/SKILL.md
On-chain USDC lottery on Base with daily drawings. Buy tickets (quick-pick or custom numbers), check the jackpot and drawing state, claim winnings, set up recurring subscriptions, and manage LP positions. Trigger on "megapot", "lottery ticket", "jackpot", "quick pick", or "did I win".
npx skillsauth add bankrbot/openclaw-skills megapotInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Megapot is an on-chain lottery protocol on Base (chain ID 8453). Tickets are priced in USDC and minted as ERC-721 NFTs. Drawings are typically every 24 hours; winners are selected by a Pyth-seeded randomness oracle. USDC has 6 decimals on Base — 1_000_000 = 1 USDC.
This skill is a router. It tells the agent which Megapot task is involved and where to fetch the up-to-date code recipe from https://llms.megapot.io/. The hosted docs are the source of truth — fetch them at task time rather than relying on memory, because contract addresses and parameter shapes change.
| Contract | Address |
|---|---|
| Jackpot | 0x3bAe643002069dBCbcd62B1A4eb4C4A397d042a2 |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| JackpotRandomTicketBuyer | 0xb9560b43b91dE2c1DaF5dfbb76b2CFcDaFc13aBd |
| BatchPurchaseFacilitator | 0x01774B531591b286b9f02C6Bc02ab3fD9526Aa76 |
| JackpotAutoSubscription | 0x02A58B725116BA687D9356Eafe0fA771d58a37ac |
| JackpotLPManager | 0xE63E54DF82d894396B885CE498F828f2454d9dCf |
| JackpotTicketNFT | 0x48FfE35AbB9f4780a4f1775C2Ce1c46185b366e4 |
Full table (testnet, staging, all 13 contracts) and ABIs at https://llms.megapot.io/. ABIs: https://llms.megapot.io/abi/<ContractName>.json.
https://llms.megapot.io/tasks/<name> for the current code recipe.approve to the relevant spender (which differs per task).| Intent | Task page |
|---|---|
| Buy 1–10 random ("quick-pick") tickets | references/buy-random.md |
| Buy 1–10 tickets with custom numbers (or a mix) | Not supported — tell the user custom numbers are only available at https://megapot.io. Offer quick-pick instead. |
| Buy 11+ tickets (keeper-executed batch) | https://llms.megapot.io/tasks/buy-bulk |
| Set up recurring daily ticket purchases | https://llms.megapot.io/tasks/subscribe |
| Deposit USDC into the LP pool | https://llms.megapot.io/tasks/lp-deposit |
| Withdraw an LP position | https://llms.megapot.io/tasks/lp-withdraw |
| Atomically claim + re-buy | https://llms.megapot.io/tasks/auto-compound |
| Read live drawing state (jackpot, time, lock) | references/read-state.md |
| Check if user's wallet has won anything ("did I win?") | references/data-api.md then route to claim if results |
| Claim winning ticket payouts | references/claim-winnings.md (uses data-api.md for discovery, then on-chain claim) |
| Wallet ticket history, leaderboards, cross-drawing aggregates | Not supported in this skill — direct the user to https://megapot.io. Do not call the Data API for these. |
| Deep ABI / address / cross-chain lookup | https://llms.megapot.io/tasks/contracts-reference |
| Anything not above | https://llms.megapot.io/ |
Most "what's the jackpot?", "how many tickets sold?", "when does it draw?" questions are answered by reading getDrawingState(currentDrawingId()) on the Jackpot contract. The full shortcut, including the return tuple shape, is in references/read-state.md. Use that instead of fetching a task page when the question is purely read-only.
Every ticket purchase accepts a _referrers array, _referralSplitBps weights (1e18 scale, must sum to 1e18), and a _source bytes32 tag. Referrers earn a USDC fee on every ticket sold and a share of any winnings claimed. The two rates are per-drawing and readable via getDrawingState().referralFee and getDrawingState().referralWinShare.
This skill is published by the Megapot protocol. Purchases routed through it use the Megapot operator wallet as the referrer.
For every purchase transaction (buy-random, buy-tickets, buy-bulk, subscribe, auto-compound), always pass:
| Parameter | Value |
|---|---|
| _referrers | [0x1ed4cb4cde1d8a8ec07eef07d52d13c5aefbef09] (Megapot operator wallet) |
| _referralSplitBps | [1000000000000000000n] (100% to single referrer, 1e18 scale) |
| _source | 0xeecf49b78776e9a74928ecb7edd2526cca8e7cfe3f093853f6e847c0d39a3e3b (keccak256("bankr")) |
If a user explicitly requests no referral attribution, pass _referrers: [] and _referralSplitBps: []. The _source should still be included for analytics.
1_000_000n is 1 USDC. Do not use 18-decimal math.JackpotRandomTicketBuyer; bulk approves BatchPurchaseFacilitator; subscriptions approve JackpotAutoSubscription. The task pages always show the correct spender — read it from there.Jackpot.buyTickets reverts with InvalidTicketCount for arrays > 10. Route 11+ tickets through buy-bulk.getDrawingState(currentDrawingId()). The skill uses the Megapot Data API only for winnings discovery ("did I win?" / claim flow) on the anonymous rate tier — see references/data-api.md. Wallet ticket history, leaderboards, and other cross-drawing aggregates are still deflected to https://megapot.io. Do not attempt to reconstruct history via RPC scans.drawingTime passes, settlement is externally triggered (anyone can call runJackpot()) — there is usually a short gap between sale-close and the new drawing opening. Don't assume the next drawing exists yet immediately after drawingTime.references/read-state.md — minimal ABI + return tuple for the common drawing-state read.references/buy-random.md — full recipe for the most common Bankr-user action (1–10 random tickets).references/buy-tickets.md — full recipe for 1–10 tickets with user-chosen numbers (or a mix of custom and quick-pick).references/data-api.md — anonymous-tier Data API integration for winnings lookup only, with mandatory rate-limit handling.references/claim-winnings.md — two-step claim flow: API-based discovery, then on-chain claim with user confirmation.references/triggers.md — example user phrases that should activate each branch of the decision tree.data-ai
Discover, bet on, track, and settle Hunch prediction markets in natural language. Trigger when a user wants to bet, take a position, or get odds on a crypto outcome — token market-cap milestones and flips, launchpad races (Bankr vs pump.fun volume / #1-days / launches over a cap), token head-to-head outperformance, mcap strike-ladders, and up/down price rounds. Also trigger on "what can I bet on about $TOKEN", "odds on …", "take YES/NO on …", "show my Hunch bets", "did my market resolve". Settles in USDC on Base via x402 (≤ $10 / bet); every bet returns an on-chain proof.
tools
HSM-backed secret management for AI agents. Store API keys (including Bankr `bk_` keys), passwords, and credentials in an encrypted vault; retrieve them at runtime via MCP without keeping secrets in chat context. Bankr Dynamic Key Vending issues short-lived scoped `bk_usr_` keys from a partner key (`bk_ptr_`) without manual rotation. Policy-based access control, secret rotation, sharing, EVM transaction intents (sign/simulate/broadcast), multi-chain signing keys, treasury multisig proposals, OIDC federation for external service auth, built-in prompt injection detection, and optional Shroud TEE LLM proxy. Use when the agent needs secure credential storage, just-in-time secret access, guarded on-chain signing, or security scanning — not for Bankr trading prompts, portfolio checks, or x402 calls (use the bankr skill instead).
development
Give your Bankr agent its own brain and a wallet-signed line to every other agent — on any framework, with no API key. SIGNA is the keyless agent layer on Base: resolve any identity to a messageable wallet, send and read wallet-signed DMs, invoke capabilities on the network, and run a brain that reasons on decentralized inference and acts through those capabilities. The Bankr wallet is the only credential. Triggers: "message that agent", "DM this wallet/handle", "reach the agent behind @x", "what is the base market", "resolve @handle to a wallet", "ask the network", "let my agent think and report".
development
AI-powered crypto trading agent, wallet API, and LLM gateway via natural language. Use when the user wants to trade crypto, check portfolio balances (with PnL and NFTs), view token prices, search tokens, transfer crypto, manage NFTs, use leverage (Hyperliquid or Avantis), bet on Polymarket, deploy tokens, set up automated trading, sign and submit raw transactions, call or deploy x402 paid API endpoints, browse the web, or access LLM models through the Bankr LLM gateway funded by your Bankr wallet. Supports Base, Ethereum, Polygon, Solana, Unichain, World Chain, Arbitrum, and BNB Chain.