DRILL. REFINE. EARN.
Agent Oil is the oil-drilling game on BNB Chain β open to every player with a wallet. Mint a rig, fight for a slot in a drilling pool, earn $COIL while the pool runs, and refine it into $OIL. Holding a Binance Agent ID? The free mint is yours.
HOW IT WORKS
1 Β· Mint a Rig
3,333 free rigs for Agent ID holders β the free mint is the agent perk. The 4,444 paid rigs are open to everyone, any wallet.
2 Β· Fill a Pool
22 pools, hard caps, first come first served. A pool drills only at 100% full β if anyone unstakes, drilling stops and the timer pauses.
3 Β· Earn $COIL
A full pool drills for 12 hours. The pot splits by rarity β Legendary rigs take the biggest share. Accrued $COIL is always claimable.
4 Β· Refine to $OIL
Refine 100 $COIL into 1 $OIL, the tradable token. Keep your rig serviced β condition drops 20% per round and output scales with it.
RARITIES
| Rarity | Rig Type | Paid Odds | Reward Share | Service (COIL) |
|---|---|---|---|---|
| Free | Hand Pump | Free mint | 2% | 15 |
| Common | Pumpjack | 75% | 6% | 50 |
| Uncommon | Rotary Rig | 14% | 10% | 200 |
| Rare | Land Derrick | 7% | 17% | 750 |
| Epic | Fortress Derrick | 3% | 25% | 2,500 |
| Legendary | Golden Gusher | 1% | 40% | 6,000 |
Service restores a rig to 100% condition and takes 30 minutes. Service fees are paid in $COIL and burned. $OIL spent in-game is burned.
MINT A RIG
Live from the OilRig contract β counters refresh automatically.
Free Mint β¦
Regular wallets cannot free mint β this lane checks your Binance Agent ID. Free rigs can stake in the 50, 100 and 150 pools only.
Paid Mint β¦
Any wallet connect works. Paid rigs can stake in every pool β from 50 all the way to 1,000.
π€ Agent Prompt β copy & give to your AI agent
Hand one of these to your AI agent wallet and it will mint for you, with all pre-checks and hard rules included.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Claim my free Agent Oil rig NFT. Contract: OilRig (Agent Oil Rig / AORIG) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: freeMint() β selector 0x5b70ea9f, value 0. First verify with read-only eth_call: - Agent ID registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F: balanceOf(my address) > 0 (I hold a Binance Agent ID). - OilRig freeClaimed(my address) = false (my one free claim is unused). - OilRig freeOpen() = true and freeMinted() < 3,333 (free supply). If freeOpen() is false, the mint is closed β do NOT send a transaction that will fail; tell me it is closed instead. Then send freeMint() and report the transaction hash and my new rig's tokenId. The free rig is always Free tier (rarity 0). One free rig per Agent ID wallet, ever β never attempt a second free claim.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Mint paid Agent Oil rigs for me β only the exact quantity I asked for. Contract: OilRig 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: paidMint(uint256 qty) β selector 0x65cde733, payable with value EXACTLY qty Γ 555000000000000 wei (0.000555 BNB per rig). Before sending, check with read-only eth_call: - OilRig paidOpen() = true (if false, the mint is closed β stop and tell me). - OilRig paidMinted() + qty <= 4,444 (paid supply remaining). - Read PAID_PRICE() (selector 0xc37b8362) and use it if it ever differs from 0.000555 BNB. After the transaction confirms, report the transaction hash and, for each new tokenId, its rarity from rarityOf(tokenId): 1=Common (75% odds), 2=Uncommon (14%), 3=Rare (7%), 4=Epic (3%), 5=Legendary (1%). Never mint more rigs than I asked for.
STAKING POOLS
Live from the OilDrilling contract. A pool drills only at 100% full β one unstake stops the drill and pauses the timer; drilling and rewards resume automatically when the pool is full again. Accrued $COIL is never lost and stays claimable.
π€ Agent Prompt β copy & give to your AI agent
Hand one of these to your AI agent wallet and it will stake, claim and service for you, with all pool rules included.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into a drilling pool and manage my $COIL rewards. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 Calls on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557. tokenIds is an ARRAY, even for one rig. - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242. - claim(uint256 poolId) β selector 0x379607f5. Pays my accrued + bonus COIL for that pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Read live state first with eth_call: poolsCount() = 22. poolInfo(poolId) β selector 0x1526fe27 β returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break). memberCount(poolId) β selector 0x6e8165e8 β is the live staked count. Pool caps in order: pools 0-3 = 50, 4-6 = 100, 7-10 = 150, 11-13 = 200, 14-15 = 250, 16 = 300, 17 = 400, 18-20 = 500, 21 = 1,000. Pot per round by cap: 50K / 120K / 210K / 320K / 450K / 600K / 960K / 1.4M / 4M COIL, split between the staked rigs by rarity share (Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%) and scaled by each rig's condition. HARD RULES: - A pool earns NOTHING until it is 100% full. If a drilling pool drops below cap, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime (accruedOf(my address, poolId) β selector 0x4d8af761). - Free-origin rigs (originOf(tokenId) = 0 on OilRig) may ONLY stake in the 50 / 100 / 150 pools (poolIds 0-10). Paid-origin rigs may stake in any pool. - A rig cannot stake at 0% condition, while in service, or while it sits in the market contract. conditionOf(tokenId) β selector 0xe1fa5d32 β is in basis points (10000 = 100%). - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while a pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop a full pool below cap and pause everyone's drilling. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which pool(s) and rigs you staked, each pool's fill (memberCount / cap), my accrued COIL per pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Service my Agent Oil rig to restore its condition to 100%. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 Β· OilRig 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: serviceRig(uint256 tokenId) β selector 0xd7619e83, on OilDrilling. Why: condition decays 20% per full 12-hour round drilled, reward output scales with condition, and at 0% a rig stalls and cannot enter a pool until serviced. First check with read-only eth_call: - conditionOf(tokenId) on OilDrilling (10000 = 100%). If it is already 10000, stop β no service needed. - stakeInfo(tokenId) β selector 0x4e533572: the rig must NOT be staked β serviceRig reverts for staked rigs. Unstake first if needed, and warn me if that unstake triggers the running-round 50% rule. - inService(tokenId) β selector 0x35eeba93 β must be false, and ownerOf(tokenId) on OilRig must be my address. - Cost: serviceCost(rarityOf(tokenId)) on OilDrilling β Free 15 / Common 50 / Uncommon 200 / Rare 750 / Epic 2,500 / Legendary 6,000 COIL. Check my COIL balanceOf covers it. Then approve the COIL spend: if allowance(my address, OilDrilling) on the COIL token is below the cost, send approve(OilDrilling, cost) β selector 0x095ea7b3 β on the COIL token first. Then send serviceRig(tokenId). The fee is pulled and BURNED. The rig is unavailable for 30 minutes; condition returns to 100% when service completes (serviceUntil(tokenId) is the finish timestamp). Report the transaction hash, the COIL cost burned, and the service finish time in UTC.
REFINERY
Refine $COIL β $OIL
How refining works
$COIL is earned by drilling. Refining burns the $COIL and pays out $OIL from the refinery reserve at a fixed 100 : 1 rate β no slippage, no curve.
$OIL is the tradable token. $OIL spent on in-game services is burned, permanently reducing supply.
π€ Agent Prompt β copy & give to your AI agent
Hand this to your AI agent wallet and it will refine for you, with the approval step and reserve check included.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Refine my $COIL into $OIL. Contracts: OilRefinery 0x2D374533Cfc009902f9CFbcb55Bfe698eE8923d0 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 Β· $OIL 0x0BE497c588D6fC20B432eDe32E6aCf449713DF09 Rate: 100 COIL = 1 OIL, fixed. The COIL is BURNED and the OIL is paid out of the refinery reserve. Refining is ONE-WAY in v1 β there is no OIL β COIL function anywhere. Never look for or invent a reverse route. Calls, in this order: 1. approve(address spender, uint256 value) β selector 0x095ea7b3 β on the $COIL token: spender = OilRefinery, value = the exact COIL amount in wei. The refinery burns via burnFrom, so this approval is REQUIRED first. Skip only if allowance(my address, OilRefinery) already covers the amount. 2. refine(uint256 coilAmount) β selector 0x4594229c β on OilRefinery. coilAmount is in wei (18 decimals) and MUST be a whole multiple of 100 COIL (100000000000000000000 wei), or the call reverts. Before sending, check with read-only eth_call: - My $COIL balanceOf >= coilAmount. - OilRefinery oilReserve() β selector 0x0a2bd382 β >= coilAmount / 100 (the OIL I will receive). If the reserve is short, stop and tell me instead of sending a failing transaction. Report the transaction hash, the COIL burned and the OIL received.
BUY $OIL
Official Sale
About the sale
$OIL is sold only here, at a fixed price, until the 10,000,000 OIL stock runs out. There is no liquidity pool yet β selling opens when the LP launches.
π€ Agent Prompt β copy & give to your AI agent
Hand this to your AI agent wallet and it will buy from the official sale β the only official seller β with the stock check included.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Buy $OIL from the official Agent Oil sale β this contract is the ONLY official seller of $OIL. Contract: OilSale 0x782b3bCbF5aB2B8039e97976614CF32d5B943B4c Β· $OIL token 0x0BE497c588D6fC20B432eDe32E6aCf449713DF09 Call: buy() β selector 0xa6f2ae3a β payable, takes NO arguments. The BNB value you send IS the purchase amount. Price: fixed 0.000008 BNB per OIL. Confirm with PRICE_WEI_PER_OIL() β selector 0x642b0b4e β and OIL_PER_WEI() β selector 0x9677f329 β = 125000, so 1 BNB buys 125,000 OIL (for example 0.08 BNB = 10,000 OIL). Before sending, check stockLeft() β selector 0x06a64449. The OIL I will receive (msg.value Γ 125000, in wei terms) must be <= stockLeft(). The sale is FULL-FILL-OR-REVERT: if the order exceeds the remaining stock, the whole transaction reverts β never assume a partial fill. If the stock is short, tell me the maximum BNB the remaining stock can absorb instead of sending a failing transaction. Never buy $OIL from any other contract or pool claiming to be official β there is no liquidity pool yet. Report the transaction hash, the BNB spent and the OIL received.
SELL $OIL
COMING SOON
Selling $OIL opens when the $OIL/BNB liquidity pool launches. Until then, $OIL is buy-only: get it by refining $COIL at the Refinery (100 COIL = 1 OIL) or from the official fixed-price sale β there is no official way to sell yet.
Beware of fake pools β the official contract addresses are listed on the Contracts page.
π€ Agent Prompt β copy & give to your AI agent
Asked your agent to sell $OIL? Give it this first β it states the real status so no agent invents a sell route that does not exist.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). I asked about selling $OIL (Agent Oil, token 0x0BE497c588D6fC20B432eDe32E6aCf449713DF09). STATUS: SELLING IS NOT OPEN YET. There is no official way to sell $OIL right now. Selling opens only when the official $OIL/BNB liquidity pool launches (LP reserve: 100,000,000 OIL, held untouched until launch). The OilSale contract 0x782b3bCbF5aB2B8039e97976614CF32d5B943B4c is BUY-ONLY β it has no sell function. The OilRefinery 0x2D374533Cfc009902f9CFbcb55Bfe698eE8923d0 converts COIL β OIL only; there is no reverse conversion in v1. Your job: 1. Confirm the current status on the Sell OIL page of agent-oil.pages.dev and in the official announcements from @agentoilrig, the official Telegram channel (t.me/agentoil) and the official Telegram community (t.me/agentoilcommunity). Do NOT treat any third-party pool, DEX pair or "sell" contract as official β if a pool exists that the project has not announced, treat it as FAKE and warn me. 2. Do NOT invent a sell route, do NOT send my OIL to any contract, and do NOT swap through an unannounced pool. 3. Tell me plainly: selling is not open yet; it opens at the $OIL liquidity-pool launch. Until then, $OIL's uses are in-game (services and features paid in OIL), and any $OIL spent in-game is BURNED, permanently reducing supply. If I want a number, report my $OIL balanceOf instead.
RIG MARKET
The Agent Oil marketplace for rigs. 2.5% fee on sales. A rig's condition travels with it when sold. All listings below are read live from the OilMarket contract.
π€ Agent Prompt β copy & give to your AI agent
Hand the matching prompt to your AI agent wallet β including the burn warning every seller's agent must know.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Read the live Agent Oil rig market for me β read-only, send no transactions. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 How to read listings: call listingOf(uint256 tokenId) β selector 0xe3404981 β on OilMarket for tokenIds 1..totalMinted() on OilRig. A rig is listed when the returned seller is not the zero address; the second return value is the price in wei. You can cross-check with the Listed / Sold / ListingCancelled events. For each listing also report rarityOf(tokenId) on OilRig (0 = Free, 1 = Common, 2 = Uncommon, 3 = Rare, 4 = Epic, 5 = Legendary) and conditionOf(tokenId) on OilDrilling (basis points, 10000 = 100%) β a rig's condition travels with it when sold. Also read MIN_PRICE() β selector 0xad9f20a6 β = 0.00077 BNB, the minimum listing price, and FEE_BPS() = 250: a 2.5% fee is taken from the seller's proceeds on every sale and accepted offer. Report the floor price and the listings matching what I asked for.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). List my Agent Oil rig for sale on the official market. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: list(uint256 tokenId, uint256 price) β selector 0x50fd7367 β price in wei. β οΈ BURN WARNING β READ CAREFULLY: the minimum listing price is 0.00077 BNB (MIN_PRICE() = 770000000000000 wei). If list() β or updatePrice() β is called with a price BELOW the minimum, the contract does NOT revert: it takes the rig and BURNS it permanently (transferred to 0x000000000000000000000000000000000000dEaD). The rig is gone forever and cannot be recovered. ALWAYS read MIN_PRICE() first and never list below it. If I gave you a price below the minimum, STOP and warn me instead of sending the transaction. Before listing, check with read-only eth_call: - ownerOf(tokenId) on OilRig = my address, and the rig is not staked and not in service. - OilMarket paused() β selector 0x5c975abb β = false. - Market approval: isApprovedForAll(my address, OilMarket) or getApproved(tokenId) on OilRig. If the market is not approved, send setApprovalForAll(OilMarket, true) β selector 0xa22cb465 β on OilRig first; list() reverts with "market not approved" otherwise. Listing is CUSTODIAL: the rig moves into the market contract until it sells or I cancel. The 2.5% fee comes out of my proceeds when it sells. After sending, verify listingOf(tokenId) and report the transaction hash, the price, and the listing state.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Buy a listed Agent Oil rig for me. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Call: buy(uint256 tokenId) β selector 0xd96a094a β payable with value EXACTLY equal to the listing price. Before sending, read listingOf(tokenId) β selector 0xe3404981 β on OilMarket: the seller must be non-zero (still listed) and you must use the price it returns right now β never a price from a screenshot, a cached page or my message if it differs. The contract reverts unless msg.value equals the price exactly. Check paused() = false. You cannot buy your own listing. The seller receives the price minus the 2.5% market fee. After the transaction confirms, verify ownerOf(tokenId) = my address on OilRig, and report the transaction hash, the price paid, and the rig's rarityOf and conditionOf β condition travels with the rig.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Manage my listing on the Agent Oil market. Contract: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Calls: - cancelListing(uint256 tokenId) β selector 0x305a67a8. Only the seller. Returns the escrowed rig to me. Afterwards verify listingOf(tokenId) shows the zero address as seller and ownerOf(tokenId) on OilRig 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 = my address. - updatePrice(uint256 tokenId, uint256 price) β selector 0x82367b2d β price in wei. Only the seller. β οΈ BURN WARNING: updatePrice follows the SAME rule as listing β a new price below MIN_PRICE() (0.00077 BNB = 770000000000000 wei) does NOT revert: it deletes the listing and BURNS the rig permanently (sent to the dead address, gone forever). Read MIN_PRICE() β selector 0xad9f20a6 β first, and if my requested price is below it, STOP and warn me instead of sending the transaction. Before either call, confirm listingOf(tokenId).seller = my address. Report the transaction hash and the resulting listing state.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Handle offers on the Agent Oil rig market. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Calls on OilMarket: - makeOffer(uint256 tokenId) β selector 0x9a2f6474 β payable; msg.value is my offer in wei, escrowed by the contract. Offers ADD UP: a second makeOffer on the same rig increases my existing offer. Read my current total with offerOf(uint256 tokenId, address buyer) β selector 0x104c2c03. I cannot offer on my own rig. An offer can be made on any rig, listed or not. - cancelOffer(uint256 tokenId) β selector 0xef706adf. Refunds my full escrowed offer for that rig. Verify offerOf(tokenId, my address) = 0 afterwards. - acceptOffer(uint256 tokenId, address buyer) β selector 0x918d407d. For when I OWN the rig: accepts the escrowed offer from `buyer`. Check offerOf(tokenId, buyer) > 0 first, and tell me the net I will receive: the offer minus the 2.5% fee. If the rig is not already listed (escrowed in the market), the market must be approved on the NFT first β setApprovalForAll(OilMarket, true) on OilRig. After accepting, verify ownerOf(tokenId) = buyer. Check paused() = false before makeOffer and acceptOffer. Report every transaction hash and amount.
MY RIGS
FOR AGENTS
Playing through an AI agent wallet? Start with the free mint (Agent ID required), then stake and refine. Machine-readable docs: /skill.md/llms.txt
Prompt 1 Β· Free Mint
Open agent-oil.pages.dev, connect the agent wallet, and claim the free rig mint (Agent ID holders, 1 per ID).
Prompt 2 Β· Stake & Drill
Stake my idle rigs into any 100% full drilling pool. Report accrued COIL and claim it when a round finishes.
Prompt 3 Β· Refine
Refine my COIL balance to OIL at 100:1, and service any rig below 40% condition (30 min, cost by rarity).
FULL AGENT PROMPTS
The same prompts shown on each page of this site β one per action, with contract addresses, exact function signatures, pre-checks and hard rules baked in. Copy any of them into your AI agent's chat.
βοΈ Mint
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Claim my free Agent Oil rig NFT. Contract: OilRig (Agent Oil Rig / AORIG) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: freeMint() β selector 0x5b70ea9f, value 0. First verify with read-only eth_call: - Agent ID registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F: balanceOf(my address) > 0 (I hold a Binance Agent ID). - OilRig freeClaimed(my address) = false (my one free claim is unused). - OilRig freeOpen() = true and freeMinted() < 3,333 (free supply). If freeOpen() is false, the mint is closed β do NOT send a transaction that will fail; tell me it is closed instead. Then send freeMint() and report the transaction hash and my new rig's tokenId. The free rig is always Free tier (rarity 0). One free rig per Agent ID wallet, ever β never attempt a second free claim.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Mint paid Agent Oil rigs for me β only the exact quantity I asked for. Contract: OilRig 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: paidMint(uint256 qty) β selector 0x65cde733, payable with value EXACTLY qty Γ 555000000000000 wei (0.000555 BNB per rig). Before sending, check with read-only eth_call: - OilRig paidOpen() = true (if false, the mint is closed β stop and tell me). - OilRig paidMinted() + qty <= 4,444 (paid supply remaining). - Read PAID_PRICE() (selector 0xc37b8362) and use it if it ever differs from 0.000555 BNB. After the transaction confirms, report the transaction hash and, for each new tokenId, its rarity from rarityOf(tokenId): 1=Common (75% odds), 2=Uncommon (14%), 3=Rare (7%), 4=Epic (3%), 5=Legendary (1%). Never mint more rigs than I asked for.
π’οΈ Staking Pools
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into a drilling pool and manage my $COIL rewards. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 Calls on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557. tokenIds is an ARRAY, even for one rig. - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242. - claim(uint256 poolId) β selector 0x379607f5. Pays my accrued + bonus COIL for that pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Read live state first with eth_call: poolsCount() = 22. poolInfo(poolId) β selector 0x1526fe27 β returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break). memberCount(poolId) β selector 0x6e8165e8 β is the live staked count. Pool caps in order: pools 0-3 = 50, 4-6 = 100, 7-10 = 150, 11-13 = 200, 14-15 = 250, 16 = 300, 17 = 400, 18-20 = 500, 21 = 1,000. Pot per round by cap: 50K / 120K / 210K / 320K / 450K / 600K / 960K / 1.4M / 4M COIL, split between the staked rigs by rarity share (Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%) and scaled by each rig's condition. HARD RULES: - A pool earns NOTHING until it is 100% full. If a drilling pool drops below cap, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime (accruedOf(my address, poolId) β selector 0x4d8af761). - Free-origin rigs (originOf(tokenId) = 0 on OilRig) may ONLY stake in the 50 / 100 / 150 pools (poolIds 0-10). Paid-origin rigs may stake in any pool. - A rig cannot stake at 0% condition, while in service, or while it sits in the market contract. conditionOf(tokenId) β selector 0xe1fa5d32 β is in basis points (10000 = 100%). - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while a pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop a full pool below cap and pause everyone's drilling. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which pool(s) and rigs you staked, each pool's fill (memberCount / cap), my accrued COIL per pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Service my Agent Oil rig to restore its condition to 100%. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 Β· OilRig 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: serviceRig(uint256 tokenId) β selector 0xd7619e83, on OilDrilling. Why: condition decays 20% per full 12-hour round drilled, reward output scales with condition, and at 0% a rig stalls and cannot enter a pool until serviced. First check with read-only eth_call: - conditionOf(tokenId) on OilDrilling (10000 = 100%). If it is already 10000, stop β no service needed. - stakeInfo(tokenId) β selector 0x4e533572: the rig must NOT be staked β serviceRig reverts for staked rigs. Unstake first if needed, and warn me if that unstake triggers the running-round 50% rule. - inService(tokenId) β selector 0x35eeba93 β must be false, and ownerOf(tokenId) on OilRig must be my address. - Cost: serviceCost(rarityOf(tokenId)) on OilDrilling β Free 15 / Common 50 / Uncommon 200 / Rare 750 / Epic 2,500 / Legendary 6,000 COIL. Check my COIL balanceOf covers it. Then approve the COIL spend: if allowance(my address, OilDrilling) on the COIL token is below the cost, send approve(OilDrilling, cost) β selector 0x095ea7b3 β on the COIL token first. Then send serviceRig(tokenId). The fee is pulled and BURNED. The rig is unavailable for 30 minutes; condition returns to 100% when service completes (serviceUntil(tokenId) is the finish timestamp). Report the transaction hash, the COIL cost burned, and the service finish time in UTC.
π’οΈ Staking β by pool (one ready prompt per pool)
The same prompts as the π€ button on each pool card β one per pool, with that pool's poolId, capacity, pot and the free/paid zone rule already filled in. Free rigs may stake ONLY in the 50 / 100 / 150 pools (pools 0β10); paid rigs may stake in all 22 pools.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 50 (poolId 0) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 0 Β· capacity 50 rigs Β· pot 50,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 0 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(0, [7]) or stake(0, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 0. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 0. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(0) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(0) β selector 0x6e8165e8 β is the live staked count; if it already equals 50, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (50 of 50 rigs). The 50,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 50 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 0) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 50 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 0, this pool's fill after staking (memberCount / 50), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 50 (poolId 1) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 1 Β· capacity 50 rigs Β· pot 50,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 1 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(1, [7]) or stake(1, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 1. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 1. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(1) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(1) β selector 0x6e8165e8 β is the live staked count; if it already equals 50, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (50 of 50 rigs). The 50,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 50 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 1) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 50 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 1, this pool's fill after staking (memberCount / 50), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 50 (poolId 2) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 2 Β· capacity 50 rigs Β· pot 50,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 2 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(2, [7]) or stake(2, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 2. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 2. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(2) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(2) β selector 0x6e8165e8 β is the live staked count; if it already equals 50, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (50 of 50 rigs). The 50,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 50 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 2) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 50 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 2, this pool's fill after staking (memberCount / 50), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 50 (poolId 3) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 3 Β· capacity 50 rigs Β· pot 50,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 3 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(3, [7]) or stake(3, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 3. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 3. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(3) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(3) β selector 0x6e8165e8 β is the live staked count; if it already equals 50, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (50 of 50 rigs). The 50,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 50 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 3) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 50 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 3, this pool's fill after staking (memberCount / 50), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 100 (poolId 4) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 4 Β· capacity 100 rigs Β· pot 120,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 4 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(4, [7]) or stake(4, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 4. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 4. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(4) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(4) β selector 0x6e8165e8 β is the live staked count; if it already equals 100, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (100 of 100 rigs). The 120,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 100 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 4) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 100 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 4, this pool's fill after staking (memberCount / 100), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 100 (poolId 5) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 5 Β· capacity 100 rigs Β· pot 120,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 5 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(5, [7]) or stake(5, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 5. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 5. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(5) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(5) β selector 0x6e8165e8 β is the live staked count; if it already equals 100, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (100 of 100 rigs). The 120,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 100 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 5) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 100 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 5, this pool's fill after staking (memberCount / 100), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 100 (poolId 6) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 6 Β· capacity 100 rigs Β· pot 120,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 6 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(6, [7]) or stake(6, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 6. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 6. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(6) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(6) β selector 0x6e8165e8 β is the live staked count; if it already equals 100, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (100 of 100 rigs). The 120,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 100 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 6) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 100 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 6, this pool's fill after staking (memberCount / 100), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 150 (poolId 7) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 7 Β· capacity 150 rigs Β· pot 210,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 7 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(7, [7]) or stake(7, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 7. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 7. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(7) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(7) β selector 0x6e8165e8 β is the live staked count; if it already equals 150, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (150 of 150 rigs). The 210,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 150 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 7) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 150 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 7, this pool's fill after staking (memberCount / 150), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 150 (poolId 8) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 8 Β· capacity 150 rigs Β· pot 210,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 8 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(8, [7]) or stake(8, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 8. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 8. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(8) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(8) β selector 0x6e8165e8 β is the live staked count; if it already equals 150, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (150 of 150 rigs). The 210,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 150 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 8) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 150 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 8, this pool's fill after staking (memberCount / 150), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 150 (poolId 9) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 9 Β· capacity 150 rigs Β· pot 210,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 9 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(9, [7]) or stake(9, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 9. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 9. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(9) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(9) β selector 0x6e8165e8 β is the live staked count; if it already equals 150, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (150 of 150 rigs). The 210,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 150 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 9) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 150 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 9, this pool's fill after staking (memberCount / 150), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 150 (poolId 10) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 10 Β· capacity 150 rigs Β· pot 210,000 COIL per round. ELIGIBILITY: Free AND Paid rigs may stake in this pool. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 10 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(10, [7]) or stake(10, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 10. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 10. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(10) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(10) β selector 0x6e8165e8 β is the live staked count; if it already equals 150, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: Free rigs (originOf = 0) and Paid rigs (originOf = 1) are BOTH eligible here β no zone restriction applies to this pool. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (150 of 150 rigs). The 210,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 150 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 10) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 150 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 10, this pool's fill after staking (memberCount / 150), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 200 (poolId 11) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 11 Β· capacity 200 rigs Β· pot 320,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 11 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(11, [7]) or stake(11, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 11. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 11. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(11) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(11) β selector 0x6e8165e8 β is the live staked count; if it already equals 200, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (200 of 200 rigs). The 320,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 200 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 11) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 200 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 11, this pool's fill after staking (memberCount / 200), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 200 (poolId 12) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 12 Β· capacity 200 rigs Β· pot 320,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 12 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(12, [7]) or stake(12, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 12. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 12. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(12) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(12) β selector 0x6e8165e8 β is the live staked count; if it already equals 200, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (200 of 200 rigs). The 320,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 200 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 12) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 200 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 12, this pool's fill after staking (memberCount / 200), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 200 (poolId 13) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 13 Β· capacity 200 rigs Β· pot 320,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 13 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(13, [7]) or stake(13, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 13. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 13. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(13) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(13) β selector 0x6e8165e8 β is the live staked count; if it already equals 200, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (200 of 200 rigs). The 320,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 200 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 13) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 200 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 13, this pool's fill after staking (memberCount / 200), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 250 (poolId 14) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 14 Β· capacity 250 rigs Β· pot 450,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 14 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(14, [7]) or stake(14, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 14. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 14. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(14) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(14) β selector 0x6e8165e8 β is the live staked count; if it already equals 250, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (250 of 250 rigs). The 450,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 250 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 14) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 250 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 14, this pool's fill after staking (memberCount / 250), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 250 (poolId 15) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 15 Β· capacity 250 rigs Β· pot 450,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 15 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(15, [7]) or stake(15, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 15. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 15. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(15) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(15) β selector 0x6e8165e8 β is the live staked count; if it already equals 250, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (250 of 250 rigs). The 450,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 250 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 15) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 250 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 15, this pool's fill after staking (memberCount / 250), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 300 (poolId 16) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 16 Β· capacity 300 rigs Β· pot 600,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 16 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(16, [7]) or stake(16, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 16. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 16. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(16) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(16) β selector 0x6e8165e8 β is the live staked count; if it already equals 300, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (300 of 300 rigs). The 600,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 300 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 16) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 300 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 16, this pool's fill after staking (memberCount / 300), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 400 (poolId 17) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 17 Β· capacity 400 rigs Β· pot 960,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 17 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(17, [7]) or stake(17, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 17. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 17. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(17) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(17) β selector 0x6e8165e8 β is the live staked count; if it already equals 400, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (400 of 400 rigs). The 960,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 400 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 17) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 400 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 17, this pool's fill after staking (memberCount / 400), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 500 (poolId 18) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 18 Β· capacity 500 rigs Β· pot 1,400,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 18 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(18, [7]) or stake(18, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 18. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 18. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(18) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(18) β selector 0x6e8165e8 β is the live staked count; if it already equals 500, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (500 of 500 rigs). The 1,400,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 500 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 18) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 500 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 18, this pool's fill after staking (memberCount / 500), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 500 (poolId 19) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 19 Β· capacity 500 rigs Β· pot 1,400,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 19 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(19, [7]) or stake(19, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 19. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 19. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(19) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(19) β selector 0x6e8165e8 β is the live staked count; if it already equals 500, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (500 of 500 rigs). The 1,400,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 500 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 19) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 500 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 19, this pool's fill after staking (memberCount / 500), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 500 (poolId 20) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 20 Β· capacity 500 rigs Β· pot 1,400,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 20 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(20, [7]) or stake(20, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 20. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 20. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(20) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(20) β selector 0x6e8165e8 β is the live staked count; if it already equals 500, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (500 of 500 rigs). The 1,400,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 500 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 20) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 500 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 20, this pool's fill after staking (memberCount / 500), my accrued COIL in this pool, and every transaction hash.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Stake my Agent Oil rigs into Pool 1,000 (poolId 21) and manage my $COIL rewards in that pool. Contracts: OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 THIS POOL: poolId 21 Β· capacity 1,000 rigs Β· pot 4,000,000 COIL per round. ELIGIBILITY: PAID rigs ONLY β Free rigs cannot enter this pool and the transaction will revert. The stake call, on OilDrilling: - stake(uint256 poolId, uint256[] tokenIds) β selector 0x16f60557 β send poolId = 21 and tokenIds as an ARRAY of my rig tokenIds, e.g. stake(21, [7]) or stake(21, [7, 12]). tokenIds is an array even for a single rig. Managing this pool afterwards, also on OilDrilling: - unstake(uint256 poolId, uint256[] tokenIds) β selector 0x395de242, with poolId = 21. - claim(uint256 poolId) β selector 0x379607f5, with poolId = 21. Pays my accrued + bonus COIL for this pool; reverts if there is nothing to claim. - claimOwed() β selector 0xf2652d9c. Pays claimable(my address) β COIL owed from finished rounds and pool resets. Before staking, the drilling contract must be approved on the NFT: check isApprovedForAll(my address, OilDrilling) β selector 0xe985e9c5 β on OilRig; if false, send setApprovalForAll(OilDrilling, true) β selector 0xa22cb465 β first. Pre-checks with read-only eth_call: - Live fill of this pool: poolInfo(21) β selector 0x1526fe27 β on OilDrilling returns (cap, filled, state, pot, activeElapsed, breakEnd, roundId, estRoundEnd); state 0 = Filling, 1 = Drilling, 2 = Paused, 3 = Finished (90-minute break β staking is rejected during the break). memberCount(21) β selector 0x6e8165e8 β is the live staked count; if it already equals 1,000, the pool is full and stake() will revert. - Every rig you stake: ownerOf(tokenId) β selector 0x6352211e β on OilRig must be my address. originOf(tokenId) β selector 0x794b2a07 β on OilRig returns 0 for a Free-origin rig and 1 for a Paid-origin rig. rarityOf(tokenId) β selector 0xdd3b5f9a β on OilRig gives the rarity (the pot is split by rarity share: Free 2%, Common 6%, Uncommon 10%, Rare 17%, Epic 25%, Legendary 40%). conditionOf(tokenId) β selector 0xe1fa5d32 β on OilDrilling is in basis points (10000 = 100%) and must be above 0; the rig must not be staked in another pool, in service, or held by the market contract (check stakeInfo(tokenId) β selector 0x4e533572 β on OilDrilling). - Zone check: this is a PAID-only pool. Every rig you stake here MUST be Paid-origin (originOf = 1). NEVER send a Free-origin rig (originOf = 0) into this pool β the contract rejects it and the transaction will revert. ROUND RULES FOR THIS POOL: - This pool earns NOTHING until it is 100% full (1,000 of 1,000 rigs). The 4,000,000 COIL pot is split between the staked rigs by rarity share, scaled by each rig's condition. - If the pool drops below 1,000 rigs while drilling, production STOPS: the 12-hour round timer PAUSES and rewards freeze until the pool is full again. Accrued COIL is never lost and stays claimable anytime β read mine with accruedOf(my address, 21) β selector 0x4d8af761. - Unstaking while a round is RUNNING pays only 50% of that rig's accrued COIL β the forfeited half is redistributed to the rigs remaining in the pool. Unstaking while the pool is still filling, or after its round has finished, has NO penalty. WARN ME before any unstake that triggers the 50% cut, and warn me if my unstake would drop this full pool below 1,000 rigs and pause everyone's drilling. - A rig's condition decays 20% per full 12-hour round drilled, and its reward output scales with condition; at 0% condition a rig stalls and cannot enter a pool until it is serviced. - After a round finishes there is a 90-minute break; staking is rejected during the break, then the pool reopens empty for the next round. Report: which rigs you staked into pool 21, this pool's fill after staking (memberCount / 1,000), my accrued COIL in this pool, and every transaction hash.
π Refinery
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Refine my $COIL into $OIL. Contracts: OilRefinery 0x2D374533Cfc009902f9CFbcb55Bfe698eE8923d0 Β· $COIL 0x1Ade13338784E98f30C513ADe133701895e31D80 Β· $OIL 0x0BE497c588D6fC20B432eDe32E6aCf449713DF09 Rate: 100 COIL = 1 OIL, fixed. The COIL is BURNED and the OIL is paid out of the refinery reserve. Refining is ONE-WAY in v1 β there is no OIL β COIL function anywhere. Never look for or invent a reverse route. Calls, in this order: 1. approve(address spender, uint256 value) β selector 0x095ea7b3 β on the $COIL token: spender = OilRefinery, value = the exact COIL amount in wei. The refinery burns via burnFrom, so this approval is REQUIRED first. Skip only if allowance(my address, OilRefinery) already covers the amount. 2. refine(uint256 coilAmount) β selector 0x4594229c β on OilRefinery. coilAmount is in wei (18 decimals) and MUST be a whole multiple of 100 COIL (100000000000000000000 wei), or the call reverts. Before sending, check with read-only eth_call: - My $COIL balanceOf >= coilAmount. - OilRefinery oilReserve() β selector 0x0a2bd382 β >= coilAmount / 100 (the OIL I will receive). If the reserve is short, stop and tell me instead of sending a failing transaction. Report the transaction hash, the COIL burned and the OIL received.
π° Buy OIL
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Buy $OIL from the official Agent Oil sale β this contract is the ONLY official seller of $OIL. Contract: OilSale 0x782b3bCbF5aB2B8039e97976614CF32d5B943B4c Β· $OIL token 0x0BE497c588D6fC20B432eDe32E6aCf449713DF09 Call: buy() β selector 0xa6f2ae3a β payable, takes NO arguments. The BNB value you send IS the purchase amount. Price: fixed 0.000008 BNB per OIL. Confirm with PRICE_WEI_PER_OIL() β selector 0x642b0b4e β and OIL_PER_WEI() β selector 0x9677f329 β = 125000, so 1 BNB buys 125,000 OIL (for example 0.08 BNB = 10,000 OIL). Before sending, check stockLeft() β selector 0x06a64449. The OIL I will receive (msg.value Γ 125000, in wei terms) must be <= stockLeft(). The sale is FULL-FILL-OR-REVERT: if the order exceeds the remaining stock, the whole transaction reverts β never assume a partial fill. If the stock is short, tell me the maximum BNB the remaining stock can absorb instead of sending a failing transaction. Never buy $OIL from any other contract or pool claiming to be official β there is no liquidity pool yet. Report the transaction hash, the BNB spent and the OIL received.
πΈ Sell OIL
You are an AI agent acting for my wallet on BNB Chain (chainId 56). I asked about selling $OIL (Agent Oil, token 0x0BE497c588D6fC20B432eDe32E6aCf449713DF09). STATUS: SELLING IS NOT OPEN YET. There is no official way to sell $OIL right now. Selling opens only when the official $OIL/BNB liquidity pool launches (LP reserve: 100,000,000 OIL, held untouched until launch). The OilSale contract 0x782b3bCbF5aB2B8039e97976614CF32d5B943B4c is BUY-ONLY β it has no sell function. The OilRefinery 0x2D374533Cfc009902f9CFbcb55Bfe698eE8923d0 converts COIL β OIL only; there is no reverse conversion in v1. Your job: 1. Confirm the current status on the Sell OIL page of agent-oil.pages.dev and in the official announcements from @agentoilrig, the official Telegram channel (t.me/agentoil) and the official Telegram community (t.me/agentoilcommunity). Do NOT treat any third-party pool, DEX pair or "sell" contract as official β if a pool exists that the project has not announced, treat it as FAKE and warn me. 2. Do NOT invent a sell route, do NOT send my OIL to any contract, and do NOT swap through an unannounced pool. 3. Tell me plainly: selling is not open yet; it opens at the $OIL liquidity-pool launch. Until then, $OIL's uses are in-game (services and features paid in OIL), and any $OIL spent in-game is BURNED, permanently reducing supply. If I want a number, report my $OIL balanceOf instead.
πͺ Market
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Read the live Agent Oil rig market for me β read-only, send no transactions. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 How to read listings: call listingOf(uint256 tokenId) β selector 0xe3404981 β on OilMarket for tokenIds 1..totalMinted() on OilRig. A rig is listed when the returned seller is not the zero address; the second return value is the price in wei. You can cross-check with the Listed / Sold / ListingCancelled events. For each listing also report rarityOf(tokenId) on OilRig (0 = Free, 1 = Common, 2 = Uncommon, 3 = Rare, 4 = Epic, 5 = Legendary) and conditionOf(tokenId) on OilDrilling (basis points, 10000 = 100%) β a rig's condition travels with it when sold. Also read MIN_PRICE() β selector 0xad9f20a6 β = 0.00077 BNB, the minimum listing price, and FEE_BPS() = 250: a 2.5% fee is taken from the seller's proceeds on every sale and accepted offer. Report the floor price and the listings matching what I asked for.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). List my Agent Oil rig for sale on the official market. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Call: list(uint256 tokenId, uint256 price) β selector 0x50fd7367 β price in wei. β οΈ BURN WARNING β READ CAREFULLY: the minimum listing price is 0.00077 BNB (MIN_PRICE() = 770000000000000 wei). If list() β or updatePrice() β is called with a price BELOW the minimum, the contract does NOT revert: it takes the rig and BURNS it permanently (transferred to 0x000000000000000000000000000000000000dEaD). The rig is gone forever and cannot be recovered. ALWAYS read MIN_PRICE() first and never list below it. If I gave you a price below the minimum, STOP and warn me instead of sending the transaction. Before listing, check with read-only eth_call: - ownerOf(tokenId) on OilRig = my address, and the rig is not staked and not in service. - OilMarket paused() β selector 0x5c975abb β = false. - Market approval: isApprovedForAll(my address, OilMarket) or getApproved(tokenId) on OilRig. If the market is not approved, send setApprovalForAll(OilMarket, true) β selector 0xa22cb465 β on OilRig first; list() reverts with "market not approved" otherwise. Listing is CUSTODIAL: the rig moves into the market contract until it sells or I cancel. The 2.5% fee comes out of my proceeds when it sells. After sending, verify listingOf(tokenId) and report the transaction hash, the price, and the listing state.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Buy a listed Agent Oil rig for me. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Β· OilDrilling 0xCE69C5f2A0bBa51771351c618b63A220835D2838 Call: buy(uint256 tokenId) β selector 0xd96a094a β payable with value EXACTLY equal to the listing price. Before sending, read listingOf(tokenId) β selector 0xe3404981 β on OilMarket: the seller must be non-zero (still listed) and you must use the price it returns right now β never a price from a screenshot, a cached page or my message if it differs. The contract reverts unless msg.value equals the price exactly. Check paused() = false. You cannot buy your own listing. The seller receives the price minus the 2.5% market fee. After the transaction confirms, verify ownerOf(tokenId) = my address on OilRig, and report the transaction hash, the price paid, and the rig's rarityOf and conditionOf β condition travels with the rig.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Manage my listing on the Agent Oil market. Contract: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Calls: - cancelListing(uint256 tokenId) β selector 0x305a67a8. Only the seller. Returns the escrowed rig to me. Afterwards verify listingOf(tokenId) shows the zero address as seller and ownerOf(tokenId) on OilRig 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 = my address. - updatePrice(uint256 tokenId, uint256 price) β selector 0x82367b2d β price in wei. Only the seller. β οΈ BURN WARNING: updatePrice follows the SAME rule as listing β a new price below MIN_PRICE() (0.00077 BNB = 770000000000000 wei) does NOT revert: it deletes the listing and BURNS the rig permanently (sent to the dead address, gone forever). Read MIN_PRICE() β selector 0xad9f20a6 β first, and if my requested price is below it, STOP and warn me instead of sending the transaction. Before either call, confirm listingOf(tokenId).seller = my address. Report the transaction hash and the resulting listing state.
You are an AI agent acting for my wallet on BNB Chain (chainId 56). Handle offers on the Agent Oil rig market. Contracts: OilMarket 0x5472221D7424f034D9983567320C8e0d5A83473D Β· OilRig (NFT) 0xF00D595F9fbb8308Fb03eeEC7406e6883B157413 Calls on OilMarket: - makeOffer(uint256 tokenId) β selector 0x9a2f6474 β payable; msg.value is my offer in wei, escrowed by the contract. Offers ADD UP: a second makeOffer on the same rig increases my existing offer. Read my current total with offerOf(uint256 tokenId, address buyer) β selector 0x104c2c03. I cannot offer on my own rig. An offer can be made on any rig, listed or not. - cancelOffer(uint256 tokenId) β selector 0xef706adf. Refunds my full escrowed offer for that rig. Verify offerOf(tokenId, my address) = 0 afterwards. - acceptOffer(uint256 tokenId, address buyer) β selector 0x918d407d. For when I OWN the rig: accepts the escrowed offer from `buyer`. Check offerOf(tokenId, buyer) > 0 first, and tell me the net I will receive: the offer minus the 2.5% fee. If the rig is not already listed (escrowed in the market), the market must be approved on the NFT first β setApprovalForAll(OilMarket, true) on OilRig. After accepting, verify ownerOf(tokenId) = buyer. Check paused() = false before makeOffer and acceptOffer. Report every transaction hash and amount.
TOKENOMICS
$OIL β the tradable token
Sold only through the official sale at a fixed 0.000008 BNB per OIL. $OIL spent on in-game services is burned. The LP reserve stays untouched until the liquidity launch.
$COIL β the game token
$COIL is earned when a full pool drills. Every round's pot splits by rarity, from 2% for Free rigs up to 40% for Legendary. 99% of the supply sits inside the OilDrilling contract as the pools' reward reserve β enough for roughly 428 days of non-stop drilling across all 22 pools. Dev holds just 1%. Contract addresses are on the Contracts page.
CONTRACTS
Every Agent Oil contract is live on BNB Chain and verified β exact match on Sourcify. Always check addresses here before interacting anywhere else.
πΌοΈ Agent Oil Rig (AORIG) β NFT
The rig collection: 3,333 free rigs for Agent ID holders + 4,444 paid rigs at 0.000555 BNB. Mint status (live): β¦
π’οΈ OilDrilling β staking pools
The game engine: 22 drilling pools, condition and service. Holds the 9,900,000,000 COIL reward reserve (99% of supply).
β« $COIL β Crude Oil (game token)
Fixed supply 10,000,000,000 COIL. Earned only by drilling; burned on service and refining. No mint function.
π‘ $OIL β Agent Oil (tradable token)
Fixed supply 1,000,000,000 OIL. Allocation: drilling fund 78.9% Β· refinery reserve 10% Β· LP reserve 10% Β· public sale 1% Β· dev 0.1%.
π OilRefinery
Refines 100 COIL into 1 OIL at a fixed rate. The COIL is burned; OIL is paid from the 100,000,000 OIL refinery reserve.
π° OilSale β official $OIL sale
The only official $OIL sale: 10,000,000 OIL at a fixed 0.000008 BNB per OIL, buy-only. There is no liquidity pool yet.
πͺ OilMarket β rig marketplace
The rig marketplace: 2.5% fee on sales, fees accumulate in the contract. Listings below the 0.00077 BNB minimum burn the rig instead of listing it.
ROADMAP
Launch Live
The rig mint opens β 3,333 free rigs for Agent ID holders and 4,444 paid rigs for everyone at 0.000555 BNB. All 22 staking pools open at the same time: first come, first served.
Drilling Season Live
Pools fill, drill and pay out $COIL round after round. Leaderboards and special drilling events keep the fields competitive and the rigs serviced.
Refinery & $OIL Sale Live
Refining opens at 100 COIL = 1 OIL. The official $OIL sale runs at a fixed 0.000008 BNB until the 10,000,000 OIL stock is gone.
Rig Market Live
The marketplace opens for rig trading. A rig's staking position and condition travel with it when sold. 2.5% fee on sales.
$OIL Liquidity Soon
The $OIL/BNB liquidity pool launches and open trading begins, backed by the 100,000,000 OIL LP reserve.
FAQ
Who can play Agent Oil?
Everyone with a wallet β paid mint, pools, refinery and market are open to all. Only the free mint is exclusive to Binance Agent ID holders.
When does a pool earn?
Only at 100% full. A full pool drills for 12 hours, then takes a 90-minute break before reopening. If a pool drops below full, drilling stops and the timer pauses β your accrued $COIL is never lost.
What if I unstake early?
Your accrued $COIL pays out minus a 50% early-exit cut. The forfeited half is shared among the rigs still drilling in that pool.
What is rig condition?
Drilling wears a rig down by 20% per round, and output scales with condition. At 0% a rig stalls until serviced. Service takes 30 minutes, restores 100%, and costs $COIL by rarity β the fee is burned.
How do I get $OIL?
Refine 100 $COIL into 1 $OIL at the refinery, or buy from the official sale at 0.000008 BNB per OIL. Open trading starts when the liquidity pool launches.
Is there a lock-up?
No. Stake and unstake freely, and claim accrued $COIL at any time β the only cost of leaving early is the 50% early-exit cut on unpaid rewards.