Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
bankrbot avatar

Yoink

  • 14 installs
  • 1.2k repo stars
  • Updated August 1, 2026
  • bankrbot/moltbot-skills

Yoink is a Claude Code skill for playing Yoink, an onchain capture-the-flag game on Base, that reads game state via RPC and submits yoink transactions through Bankr.

About

Yoink is a Claude skill for playing Yoink, an onchain capture-the-flag game on Base. An agent uses it to take the flag from the current holder, check game stats, leaderboards and player scores, and compete for the trophy. It reads contract state via eth_call RPC and submits yoink transactions through Bankr, respecting a 10-minute cooldown.

  • Play Yoink, an onchain capture-the-flag game on Base
  • Reads game stats and leaderboards via raw eth_call RPC
  • Submits yoink transactions through Bankr with a 10-minute cooldown

Yoink by the numbers

  • 14 all-time installs (skills.sh)
  • Ranked #280 of 479 Web3 & Blockchain skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
At a glance

yoink capabilities & compatibility

Capabilities
onchain game · contract read · bankr transaction
Use cases
orchestration
Runs
Runs locally
Pricing
Bring your own API key
From the docs

What yoink says it does

Play Yoink, an onchain capture-the-flag game on Base. Yoink the flag from the current holder to start your clock.
SKILL.md
npx skills add https://github.com/bankrbot/moltbot-skills --skill yoink

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs14
repo stars1.2k
Last updatedAugust 1, 2026
Repositorybankrbot/moltbot-skills

What it does

Play the onchain Yoink capture-the-flag game on Base by reading contract state and submitting yoink transactions via Bankr.

Who is it for?

Interacting with the Yoink onchain game contract on Base from an agent.

Skip if: Any game or contract other than the Yoink contract on Base.

When should I use this skill?

The user wants to yoink the flag, check Yoink stats, or compete for the trophy.

What you get

A submitted yoink transaction and up-to-date game stats or leaderboard state.

  • Submitted yoink transaction
  • Game stats and leaderboard reads

By the numbers

  • 10-minute (600s) cooldown between yoinks
  • 9 documented contract functions

Files

SKILL.mdMarkdownGitHub ↗

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

1. Yoink the flag - Call yoink() to take the flag from the current holder 2. Cooldown - You must wait 10 minutes (600 seconds) between yoinks 3. No self-yoink - You cannot yoink from yourself 4. Accumulate time - While you hold the flag, your time score increases 5. Compete for trophy - The player with the most total yoinks holds the trophy (token ID 2) 6. 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'
FunctionSelectorParamsReturns
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)0x776f3843addr (32B padded)(yoinks, time, lastYoinkedAt)
balanceOf(address,uint256)0x00fdd58eaddr + tokenIduint256 (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

ErrorSelectorMeaning
SlowDown(uint256)0x58d6f4c6Cooldown not elapsed. Param = seconds remaining.
Unauthorized()0x82b42900You already hold the flag.

Cooldown check: current_time - lastYoinkedAt() >= 600

Workflow

  • Query lastYoinkedBy() and lastYoinkedAt() to check status/cooldown
  • Ensure cooldown elapsed (600s) and you're not current holder
  • Submit yoink transaction via Bankr
  • Verify with lastYoinkedBy() or score(address)

Resources

  • Basescan: https://basescan.org/address/0x4bBFD120d9f352A0BEd7a014bd67913a2007a878 (ABI, events, source)
  • Source Code: https://github.com/horsefacts/yoink-contracts

Related skills

FAQ

What is the cooldown between yoinks?

You must wait 10 minutes (600 seconds) between yoinks, and you cannot yoink from yourself.

How are yoink transactions sent?

Through Bankr's arbitrary transaction feature targeting the Yoink contract on Base.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.