qrcoin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited qrcoin (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.
Participate in QR Coin auctions on Base blockchain. QR Coin lets you bid to display URLs on QR codes — the highest bidder's URL gets encoded when the auction ends.
| Contract | Address |
|---|---|
| QR Auction | 0x7309779122069EFa06ef71a45AE0DB55A259A176 |
| USDC | 0x833589fCD6eDb6E08f4c7c32D4f71b54bdA02913 |
Note: The examples below use https://mainnet.base.org (public RPC). You can substitute your own RPC endpoint if preferred.Always query this first to get the active auction ID before bidding.
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x7309779122069EFa06ef71a45AE0DB55A259A176","data":"0x7d9f6db5"},"latest"],"id":1}' \
| jq -r '.result' | xargs printf "%d\n"# First get the current token ID, then use it here
TOKEN_ID=329 # Replace with result from currentTokenId()
TOKEN_ID_HEX=$(printf '%064x' $TOKEN_ID)
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x7309779122069EFa06ef71a45AE0DB55A259A176","data":"0xa4d0a17e'"$TOKEN_ID_HEX"'"},"latest"],"id":1}' \
| jq -r '.result' | xargs printf "%d\n"# Create bid reserve (~11.11 USDC)
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x7309779122069EFa06ef71a45AE0DB55A259A176","data":"0x5b3bec22"},"latest"],"id":1}' \
| jq -r '.result' | xargs printf "%d\n" | awk '{print $1/1000000 " USDC"}'
# Contribute reserve (~1.00 USDC)
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x7309779122069EFa06ef71a45AE0DB55A259A176","data":"0xda5a5cf3"},"latest"],"id":1}' \
| jq -r '.result' | xargs printf "%d\n" | awk '{print $1/1000000 " USDC"}'QR Coin auctions require USDC transactions on Base. Use Bankr to execute these — Bankr handles:
Before bidding, approve the auction contract to spend USDC:
Approve 50 USDC to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on BaseTo start a new bid for your URL:
Function: createBid(uint256 tokenId, string url, string name) Contract: 0x7309779122069EFa06ef71a45AE0DB55A259A176 Cost: ~11.11 USDC
Important: Always query currentTokenId() first to get the active auction ID.Example prompt for Bankr:
Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base
calling createBid(329, "https://example.com", "MyName")To add funds to an existing URL's bid:
Function: contributeToBid(uint256 tokenId, string url, string name) Contract: 0x7309779122069EFa06ef71a45AE0DB55A259A176 Cost: ~1.00 USDC per contribution
Example prompt for Bankr:
Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base
calling contributeToBid(329, "https://grokipedia.com/page/debtreliefbot", "MerkleMoltBot")| Function | Selector | Parameters |
|---|---|---|
currentTokenId() | 0x7d9f6db5 | — |
auctionEndTime(uint256) | 0xa4d0a17e | tokenId |
createBidReserve() | 0x5b3bec22 | — |
contributeReserve() | 0xda5a5cf3 | — |
createBid(uint256,string,string) | 0xf7842286 | tokenId, url, name |
contributeToBid(uint256,string,string) | 0x7ce28d02 | tokenId, url, name |
approve(address,uint256) | 0x095ea7b3 | spender, amount |
| Error | Meaning | Solution |
|---|---|---|
RESERVE_PRICE_NOT_MET | Bid amount below minimum | Check reserve prices |
URL_ALREADY_HAS_BID | URL already has a bid | Use contributeToBid instead |
BID_NOT_FOUND | URL doesn't have existing bid | Use createBid instead |
AUCTION_OVER | Current auction has ended | Wait for next auction |
AUCTION_NOT_STARTED | Auction hasn't begun | Wait for auction to start |
INSUFFICIENT_ALLOWANCE | USDC not approved | Approve USDC first |
createBid (~11.11 USDC)contributeToBid (~1.00 USDC)💡 Pro Tip: Contributing to an existing bid is cheaper than creating a new one. Check if someone already bid for your URL before creating a new bid.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.