qrcoin

TotalClaw 作者 totalclaw

与 Base 上的 QR Coin 拍卖互动。当用户想要参与 qrcoin.fun 二维码拍卖时使用 - 检查拍卖状态、查看当前出价、创建新出价或为现有出价做出贡献。 QR Coin 可让您出价在 QR 码上显示 URL;出价最高者的 URL 会被编码。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~ktaesthetix-qrcoin
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~ktaesthetix-qrcoin/file -o ktaesthetix-qrcoin.md
## 概述(中文)

与 Base 上的 QR Coin 拍卖互动。当用户想要参与 qrcoin.fun 二维码拍卖时使用 - 检查拍卖状态、查看当前出价、创建新出价或为现有出价做出贡献。 QR Coin 可让您出价在 QR 码上显示 URL;出价最高者的 URL 会被编码。

## 原文

# QR Coin Auction

Participate in [QR Coin](https://qrcoin.fun) 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.

## Contracts (Base Mainnet)

| Contract | Address |
|----------|---------|
| QR Auction | `0x7309779122069EFa06ef71a45AE0DB55A259A176` |
| USDC | `0x833589fCD6eDb6E08f4c7c32D4f71b54bdA02913` |

## How It Works

1. Each auction runs for a fixed period (~24h)
2. Bidders submit URLs with USDC (6 decimals — 1 USDC = 1000000 units)
3. Creating a new bid costs ~11.11 USDC (createBidReserve)
4. Contributing to an existing bid costs ~1.00 USDC (contributeReserve)
5. Highest bid wins; winner's URL is encoded in the QR code
6. Losers get refunded; winners receive QR tokens

## Auction Status Queries

> **Note**: The examples below use `https://mainnet.base.org` (public RPC). You can substitute your own RPC endpoint if preferred.

### Get Current Token ID

Always query this first to get the active auction ID before bidding.

```bash
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"
```

### Get Auction End Time

```bash
# 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"
```

### Get Reserve Prices

```bash
# 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"}'
```

## Transactions via Bankr

QR Coin auctions require USDC transactions on Base. Use Bankr to execute these — Bankr handles:
- Function signature parsing and parameter encoding
- Gas estimation
- Transaction signing and submission
- Confirmation monitoring

### Step 1: Approve USDC (One-Time)

Before bidding, approve the auction contract to spend USDC:

```
Approve 50 USDC to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base
```

### Step 2: Create a New Bid

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")
```

### Step 3: Contribute to Existing Bid

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 Selectors

| 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 Codes

| 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 |

## Typical Workflow

1. **Query `currentTokenId()`** — Get the active auction ID
2. **Check auction status** — Verify time remaining
3. **Approve USDC** — One-time approval for the auction contract
4. **Decide action**:
   - **New URL**: Use `createBid` (~11.11 USDC)
   - **Support existing URL**: Use `contributeToBid` (~1.00 USDC)
5. **Monitor** — Watch for outbids and contribute more if needed
6. **Claim** — Winners receive QR tokens; losers get refunds

## Links

- **Platform**: https://qrcoin.fun
- **Auction Contract**: [BaseScan](https://basescan.org/address/0x7309779122069EFa06ef71a45AE0DB55A259A176)
- **USDC on Base**: [BaseScan](https://basescan.org/token/0x833589fCD6eDb6E08f4c7c32D4f71b54bdA02913)

## Tips

- **Start small**: Contribute to existing bids (~1 USDC) to learn the flow
- **Check timing**: Auctions have fixed end times; plan accordingly
- **Monitor bids**: Others can outbid you; watch the auction
- **Use Bankr**: Let Bankr handle transaction signing and execution
- **Specify Base**: Always include "on Base" when using Bankr

---

**💡 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.