Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 103% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 193% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -56% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -8% | 0% |
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)
yoink() to take the flag from the current holderRPC template:
bashcurl -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).
Use Bankr's arbitrary transaction feature:
{
"to": "0x4bBFD120d9f352A0BEd7a014bd67913a2007a878",
"data": "0x9846cd9e",
"value": "0",
"chainId": 8453
}| 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
lastYoinkedBy() and lastYoinkedAt() to check status/cooldownlastYoinkedBy() or score(address)Other measured skills in the registry, with their headline benchmark lift.