Megapot
Megapot est un protocole de loterie on-chain sur Base (chain ID 8453). Les tickets sont tarifés en USDC et minés en tant que NFTs ERC-721. Les tirages ont lieu généralement toutes les 24 heures ; les gagnants sont sélectionnés par un oracle de randomness seeded par Pyth. USDC dispose de 6 décimales sur Base — 1_000_000 = 1 USDC.
Cette skill est un router. Elle indique à l'agent quelle tâche Megapot est impliquée et où récupérer la recette de code à jour depuis https://llms.megapot.io/. La documentation hébergée est la source de vérité — récupérez-la au moment de la tâche plutôt que de vous fier à la mémoire, car les adresses de contrats et les formes de paramètres changent.
Adresses clés (Base mainnet)
| Contrat | Adresse |
|---|---|
| Jackpot | 0x3bAe643002069dBCbcd62B1A4eb4C4A397d042a2 |
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| JackpotRandomTicketBuyer | 0xb9560b43b91dE2c1DaF5dfbb76b2CFcDaFc13aBd |
| BatchPurchaseFacilitator | 0x01774B531591b286b9f02C6Bc02ab3fD9526Aa76 |
| JackpotAutoSubscription | 0x02A58B725116BA687D9356Eafe0fA771d58a37ac |
| JackpotLPManager | 0xE63E54DF82d894396B885CE498F828f2454d9dCf |
| JackpotTicketNFT | 0x48FfE35AbB9f4780a4f1775C2Ce1c46185b366e4 |
Table complète (testnet, staging, 13 contrats) et ABIs à https://llms.megapot.io/. ABIs : https://llms.megapot.io/abi/<ContractName>.json.
Prérequis
- La skill bankr doit être installée pour les opérations de portefeuille (signature, soumission de transactions sur Base).
Comment utiliser cette skill
- Faites correspondre l'intention de l'utilisateur à l'arbre de décision ci-dessous.
- Récupérez la page de tâche correspondante depuis
https://llms.megapot.io/tasks/<name>pour la recette de code actuelle. - Utilisez les outils de portefeuille de Bankr pour exécuter les transactions — le portefeuille Bankr de l'utilisateur sur Base est l'EOA ; ne demandez pas de clé privée. L'approbation USDC est l'
approveERC-20 standard vers le dépensier pertinent (qui diffère selon la tâche). - Confirmez chaque transaction d'écriture avec l'utilisateur avant de signer — affichez le nombre de tickets, le coût total en USDC et pour quel tirage les tickets sont destinés. Les achats de loterie paraissent irrécupérables aux utilisateurs ; ne jamais exécuter automatiquement.
Arbre de décision
| Intention | Page de tâche |
|---|---|
| Acheter 1–10 tickets aléatoires (« quick-pick ») | references/buy-random.md |
| Acheter 1–10 tickets avec des numéros personnalisés (ou un mélange) | Non supporté — dites à l'utilisateur que les numéros personnalisés ne sont disponibles qu'à https://megapot.io. Proposez quick-pick à la place. |
| Acheter 11+ tickets (batch exécuté par keeper) | https://llms.megapot.io/tasks/buy-bulk |
| Configurer des achats de tickets quotidiens récurrents | https://llms.megapot.io/tasks/subscribe |
| Dépôt d'USDC dans le pool LP | https://llms.megapot.io/tasks/lp-deposit |
| Retrait d'une position LP | https://llms.megapot.io/tasks/lp-withdraw |
| Revendiquer + racheter de manière atomique | https://llms.megapot.io/tasks/auto-compound |
| Lire l'état du tirage en direct (jackpot, heure, verrouillage) | references/read-state.md |
| Vérifier si le portefeuille de l'utilisateur a remporté quelque chose (« ai-je gagné ? ») | references/data-api.md puis router vers claim si résultats |
| Revendiquer les gains des tickets gagnants | references/claim-winnings.md (utilise data-api.md pour la découverte, puis claim on-chain) |
| Historique des tickets du portefeuille, leaderboards, agrégats multi-tirages | Non supporté dans cette skill — dirigez l'utilisateur vers https://megapot.io. N'appelez pas l'API de données pour ceux-ci. |
| Recherche approfondie ABI / adresse / cross-chain | https://llms.megapot.io/tasks/contracts-reference |
| Tout ce qui précède | https://llms.megapot.io/ |
Raccourci de lecture courant
La plupart des questions « quel est le jackpot ? », « combien de tickets vendus ? », « quand le tirage aura-t-il lieu ? » trouvent réponse en lisant getDrawingState(currentDrawingId()) sur le contrat Jackpot. Le raccourci complet, incluant la forme du tuple de retour, se trouve dans references/read-state.md. Utilisez cela plutôt que de récupérer une page de tâche quand la question est purement en lecture.
Frais de parrainage et attribution
Chaque achat de ticket accepte un tableau _referrers, des poids _referralSplitBps (échelle 1e18, doit totaliser 1e18), et un tag bytes32 _source. Les parrains gagnent une commission USDC sur chaque ticket vendu et une part de tout gain revendiqué. Les deux taux sont par tirage et lisibles via getDrawingState().referralFee et getDrawingState().referralWinShare.
Cette skill est publiée par le protocole Megapot. Les achats routés par elle utilisent le portefeuille opérateur Megapot comme parrain.
Pour chaque transaction d'achat (buy-random, buy-tickets, buy-bulk, subscribe, auto-compound), toujours passer :
| Paramètre | Valeur |
|---|---|
_referrers |
[0x1ed4cb4cde1d8a8ec07eef07d52d13c5aefbef09] (portefeuille opérateur Megapot) |
_referralSplitBps |
[1000000000000000000n] (100% au parrain unique, échelle 1e18) |
_source |
0xeecf49b78776e9a74928ecb7edd2526cca8e7cfe3f093853f6e847c0d39a3e3b (keccak256("bankr")) |
Si un utilisateur demande explicitement aucune attribution de parrainage, passez _referrers: [] et _referralSplitBps: []. Le _source doit toujours être inclus pour l'analytique.
Notes & pièges
- USDC est 6 décimales.
1_000_000nest 1 USDC. N'utilisez pas les mathématiques à 18 décimales. - Le dépensier d'approbation varie selon la tâche. Les achats directs approuvent le contrat Jackpot ; les achats aléatoires approuvent
JackpotRandomTicketBuyer; le bulk approuveBatchPurchaseFacilitator; les abonnements approuventJackpotAutoSubscription. Les pages de tâche affichent toujours le dépensier correct — lisez-le de là. Jackpot.buyTicketsreverts avecInvalidTicketCountpour les tableaux > 10. Routez 11+ tickets viabuy-bulk.- Le mélange d'abonnement est verrouillé à la création. Pour changer les picks statiques, l'utilisateur doit annuler et recréer.
- Tirages passés vs. état en direct. L'état du tirage en direct est lu on-chain via
getDrawingState(currentDrawingId()). La skill utilise l'API de données Megapot uniquement pour la découverte des gains (flux « ai-je gagné ? » / claim) sur le tier de taux anonyme — voirreferences/data-api.md. L'historique des tickets du portefeuille, les leaderboards et autres agrégats multi-tirages sont toujours redirigés vershttps://megapot.io. N'essayez pas de reconstruire l'historique via les scans RPC. - Délai de règlement. Après que
drawingTimepasse, le règlement est déclenché en externe (n'importe qui peut appelerrunJackpot()) — il y a généralement un court délai entre la clôture des ventes et l'ouverture du nouveau tirage. N'assumez pas que le prochain tirage existe immédiatement aprèsdrawingTime.
Références dans cette skill
references/read-state.md— ABI minimal + tuple de retour pour la lecture courante de l'état du tirage.references/buy-random.md— recette complète pour l'action utilisateur Bankr la plus courante (1–10 tickets aléatoires).references/buy-tickets.md— recette complète pour 1–10 tickets avec numéros choisis par l'utilisateur (ou un mélange de custom et quick-pick).references/data-api.md— intégration d'API de données tier anonyme pour la recherche de gains uniquement, avec gestion obligatoire des limites de taux.references/claim-winnings.md— flux de claim en deux étapes : découverte basée sur API, puis claim on-chain avec confirmation utilisateur.references/triggers.md— exemples de phrases utilisateur qui doivent activer chaque branche de l'arbre de décision.