qrcoin/SKILL.md
Interact with QR Coin auctions on Base. Use when the user wants to participate in qrcoin.fun QR code auctions — check auction status, view current bids, create new bids, or contribute to existing bids. QR Coin lets you bid to display URLs on QR codes; the highest bidder's URL gets encoded.
npx skillsauth add bankrbot/openclaw-skills qrcoinInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 Base
To 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 |
currentTokenId() — Get the active auction IDcreateBid (~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.
data-ai
Discover, bet on, track, and settle Hunch prediction markets in natural language. Trigger when a user wants to bet, take a position, or get odds on a crypto outcome — token market-cap milestones and flips, launchpad races (Bankr vs pump.fun volume / #1-days / launches over a cap), token head-to-head outperformance, mcap strike-ladders, and up/down price rounds. Also trigger on "what can I bet on about $TOKEN", "odds on …", "take YES/NO on …", "show my Hunch bets", "did my market resolve". Settles in USDC on Base via x402 (≤ $10 / bet); every bet returns an on-chain proof.
tools
HSM-backed secret management for AI agents. Store API keys (including Bankr `bk_` keys), passwords, and credentials in an encrypted vault; retrieve them at runtime via MCP without keeping secrets in chat context. Bankr Dynamic Key Vending issues short-lived scoped `bk_usr_` keys from a partner key (`bk_ptr_`) without manual rotation. Policy-based access control, secret rotation, sharing, EVM transaction intents (sign/simulate/broadcast), multi-chain signing keys, treasury multisig proposals, OIDC federation for external service auth, built-in prompt injection detection, and optional Shroud TEE LLM proxy. Use when the agent needs secure credential storage, just-in-time secret access, guarded on-chain signing, or security scanning — not for Bankr trading prompts, portfolio checks, or x402 calls (use the bankr skill instead).
development
Give your Bankr agent its own brain and a wallet-signed line to every other agent — on any framework, with no API key. SIGNA is the keyless agent layer on Base: resolve any identity to a messageable wallet, send and read wallet-signed DMs, invoke capabilities on the network, and run a brain that reasons on decentralized inference and acts through those capabilities. The Bankr wallet is the only credential. Triggers: "message that agent", "DM this wallet/handle", "reach the agent behind @x", "what is the base market", "resolve @handle to a wallet", "ask the network", "let my agent think and report".
development
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 (Hyperliquid or Avantis), bet on Polymarket, deploy tokens, set up automated trading, sign and submit raw transactions, call or deploy x402 paid API endpoints, browse the web, or access LLM models through the Bankr LLM gateway funded by your Bankr wallet. Supports Base, Ethereum, Polygon, Solana, Unichain, World Chain, Arbitrum, and BNB Chain.