yoink — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited yoink (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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:
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).
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)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.