executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
qr-auction-bidderBid on $QR auctions at qrcoin.fun. Place bids on Base mainnet using USDC. Uses Bankr for transaction execution — no wallet management needed.
Independent GitHub snapshot · Automated classification · Original documentation governs
Bid on $QR daily auctions. Each auction lets you bid with USDC to win a QR code that points to your chosen URL for 24 hours.
$QR runs continuous 24-hour auctions on Base mainnet. The highest bid wins, and the winning URL is displayed on a real QR code. Losing bidders are refunded automatically.
bankr skill from https://github.com/BankrBot/moltbot-skills| Contract | Address |
|---|---|
| QRAuctionV5 | 0x7309779122069EFa06ef71a45AE0DB55A259A176 |
| USDC (Base) | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Action | Minimum |
|---|---|
Create new bid (createBid) | 11.11 USDC |
Contribute to existing bid (contributeToBid) | 1.00 USDC |
tokenId, startTime, and endTime (typically 24 hours)createBid() to bid on a URL, or contributeToBid() to add USDC to an existing URL's bidThis skill uses Bankr for on-chain transaction execution. Install the bankr skill first:
https://github.com/BankrBot/moltbot-skills
Bankr handles wallet creation, USDC approvals, transaction signing, gas estimation, and confirmation. No private keys or wallet setup needed.
Query the current auction state via RPC:
# Get current auction state (tokenId, highestBid, startTime, endTime, settled)
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x7309779122069EFa06ef71a45AE0DB55A259A176","data":"0xe4b8f0de"},"latest"],"id":1}' \
| jq -r '.result'
The auction() function (selector 0xe4b8f0de) returns the full auction state including tokenId, highestBid, startTime, endTime, settled, and qrMetadata.
# Get number of bids in current auction
curl -s -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x7309779122069EFa06ef71a45AE0DB55A259A176","data":"0x91a3823f"},"latest"],"id":1}' \
| jq -r '.result' | xargs printf "%d\n"
# Get create bid reserve price (should return 11110000 = 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":"0x4b6014f6"},"latest"],"id":1}' \
| jq -r '.result' | xargs printf "%d\n"
Before bidding, approve the auction contract to spend your USDC. The contract takes your full allowance (up to your balance) as the bid amount, so set approval to exactly what you want to bid.
Approve 15 USDC to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base
Or via Bankr script:
scripts/bankr.sh "Approve 15 USDC to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base"
Use createBid when no bid exists yet for your URL. Always query the current tokenId from auction() first.
Function: createBid(uint256 _tokenId, string _urlString, string _name)
Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base calling createBid(329, "https://your-url.com", "YourName")
Or via Bankr script:
scripts/bankr.sh 'Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base calling createBid(329, "https://your-url.com", "YourName")'
Important: Replace
329with the actual currenttokenId. Using a wrong token ID reverts withINVALID_TOKEN_ID.
Use contributeToBid to add USDC to a URL that already has a bid:
Function: contributeToBid(uint256 _tokenId, string _urlString, string _name)
Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base calling contributeToBid(329, "https://existing-url.com", "YourName")
Or via Bankr script:
scripts/bankr.sh 'Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base calling contributeToBid(329, "https://existing-url.com", "YourName")'
createBid (minimum 11.11 USDC)contributeToBid (minimum 1.00 USDC)createBid with a URL that already has a bid reverts with URL_ALREADY_HAS_BIDcontributeToBid with a URL that has no bid reverts with BID_NOT_FOUND| Parameter | Value |
|---|---|
| Duration | 24 hours |
| Time buffer | 5 minutes (a new leading URL in the last 5 min extends the auction) |
| Max extension | 3 hours beyond scheduled end |
contributeToBid. Calling createBid with a taken URL will revert with URL_ALREADY_HAS_BID.tokenId from auction() before bidding. Using a wrong token ID reverts with INVALID_TOKEN_ID.| Error | Meaning | Solution |
|---|---|---|
INVALID_TOKEN_ID | Wrong auction token ID | Query auction() for current tokenId |
AUCTION_OVER | Auction has ended | Wait for next auction |
RESERVE_PRICE_NOT_MET | Bid below minimum | Approve at least 11.11 USDC (create) or 1.00 USDC (contribute) |
URL_ALREADY_HAS_BID | URL already bid on | Use contributeToBid instead |
BID_NOT_FOUND | No existing bid for URL | Use createBid instead |
AUCTION_SETTLED | Auction already settled | Wait for next auction |
The full QRAuctionV5 ABI is available at references/QRAuctionV5.abi.json in this skill package.
Key functions:
| Function | Description |
|---|---|
auction() | Get current auction state (tokenId, highestBid, startTime, endTime, settled) |
getAllBids() | Get all bids for current auction |
getBid(url) | Get bid for a specific URL |
getBidCount() | Number of bids in current auction |
createBid(tokenId, url, name) | Place a new bid for a URL |
contributeToBid(tokenId, url, name) | Add to an existing URL's bid |
createBidReservePrice() | Get minimum for new bids |
contributeBidReservePrice() | Get minimum for contributions |
Key events:
| Event | Description |
|---|---|
AuctionBid | New bid created |
BidContributionMade | Contribution added to existing bid |
AuctionSettled | Auction ended, winner determined |
AuctionCreated | New auction started |
auction() for current tokenId and time remaininggetAllBids() or getBid(url) to see what's already bidcreateBid for a new URL or contributeToBid for an existing one