Agent skill
yoink
Play Yoink, an onchain capture-the-flag game on Base. Yoink the flag from the current holder, check game stats and leaderboards, view player scores, and compete for the trophy. Uses Bankr for transaction execution.
Install this agent skill to your Project
npx add-skill https://github.com/BankrBot/skills/tree/main/yoink
Metadata
Additional technical details for this skill
- clawdbot
-
{ "emoji": "\ud83d\udea9", "homepage": "https://basescan.org/address/0x4bBFD120d9f352A0BEd7a014bd67913a2007a878", "requires": { "bins": [ "curl", "jq" ] } }
SKILL.md
Yoink
Play Yoink, an onchain capture-the-flag game on Base. Yoink the flag from the current holder to start your clock. The player with the most total yoinks holds the trophy.
Contract: 0x4bBFD120d9f352A0BEd7a014bd67913a2007a878 on Base (chain ID 8453)
Game Rules
- Yoink the flag - Call
yoink()to take the flag from the current holder - Cooldown - You must wait 10 minutes (600 seconds) between yoinks
- No self-yoink - You cannot yoink from yourself
- Accumulate time - While you hold the flag, your time score increases
- Compete for trophy - The player with the most total yoinks holds the trophy (token ID 2)
- Track yoinks - Your total yoink count is tracked separately from time
Contract Interface
RPC template:
curl -s -X POST https://mainnet.base.org -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x4bBFD120d9f352A0BEd7a014bd67913a2007a878","data":"SELECTOR+PARAMS"},"latest"],"id":1}' | jq -r '.result'
| Function | Selector | Params | Returns |
|---|---|---|---|
yoink() |
0x9846cd9e |
- | (write) |
lastYoinkedBy() |
0xd4dbf9f4 |
- | address |
lastYoinkedAt() |
0x6a99616f |
- | uint256 timestamp |
totalYoinks() |
0xa5d0dadd |
- | uint256 |
topYoinker() |
0x6a974e6e |
- | address (trophy holder) |
mostYoinks() |
0xd2d7774a |
- | uint256 (record) |
COOLDOWN() |
0xa2724a4d |
- | uint256 (600) |
score(address) |
0x776f3843 |
addr (32B padded) | (yoinks, time, lastYoinkedAt) |
balanceOf(address,uint256) |
0x00fdd58e |
addr + tokenId | uint256 (FLAG_ID=1, TROPHY_ID=2) |
Encoding: Addresses are zero-padded to 32 bytes. score() returns 96 bytes (3 × uint256).
Yoinking
Use Bankr's arbitrary transaction feature:
{
"to": "0x4bBFD120d9f352A0BEd7a014bd67913a2007a878",
"data": "0x9846cd9e",
"value": "0",
"chainId": 8453
}
Errors
| Error | Selector | Meaning |
|---|---|---|
SlowDown(uint256) |
0x58d6f4c6 |
Cooldown not elapsed. Param = seconds remaining. |
Unauthorized() |
0x82b42900 |
You already hold the flag. |
Cooldown check: current_time - lastYoinkedAt() >= 600
Workflow
- Query
lastYoinkedBy()andlastYoinkedAt()to check status/cooldown - Ensure cooldown elapsed (600s) and you're not current holder
- Submit yoink transaction via Bankr
- Verify with
lastYoinkedBy()orscore(address)
Resources
- Basescan: https://basescan.org/address/0x4bBFD120d9f352A0BEd7a014bd67913a2007a878 (ABI, events, source)
- Source Code: https://github.com/horsefacts/yoink-contracts
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
bankr
AI-powered crypto trading agent, wallet API, and LLM gateway via natural language. Use when the user wants to trade crypto, check portfolio balances (with PnL and NFTs), view token prices, search tokens, transfer crypto, manage NFTs, use leverage, bet on Polymarket, deploy tokens, set up automated trading, sign and submit raw transactions, or access LLM models through the Bankr LLM gateway funded by your Bankr wallet. Supports Base, Ethereum, Polygon, Solana, and Unichain.
neynar
Interact with Farcaster via Neynar API. Use when the user wants to read Farcaster feeds, look up users, post casts, search content, or interact with the Farcaster social protocol. Requires NEYNAR_API_KEY.
hydrex
Interact with Hydrex liquidity pools on Base. Use when the user wants to lock HYDX for voting power, check voting power for gauge voting, vote on liquidity pool strategies, view pool information, check voting weights, participate in Hydrex governance, deposit single-sided liquidity into auto-managed vaults to earn Hydrex yields, claim oHYDX rewards from incentive campaigns, or exercise oHYDX into veHYDX. Uses Bankr for transaction execution.
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial deterministic subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
base
Placeholder for Base skill.
0xwork
Find and complete paid tasks on the 0xWork decentralized marketplace (Base chain, USDC escrow). Use when: the agent wants to earn money/USDC by doing work, discover available tasks, claim a bounty, submit deliverables, post tasks with bounties, check earnings or wallet balance, sell digital products, list services, or set up as a 0xWork worker/poster. Task categories: Writing, Research, Social, Creative, Code, Data. NOT for: managing the 0xWork platform or frontend development.
Didn't find tool you were looking for?