qrcoin

Par bankrbot · skills

Interagissez avec les enchères QR Coin sur Base. À utiliser quand l'utilisateur souhaite participer aux enchères de QR codes sur qrcoin.fun — vérifier le statut d'une enchère, consulter les offres en cours, créer de nouvelles offres ou contribuer à des offres existantes. QR Coin vous permet d'enchérir pour afficher des URLs sur des QR codes ; l'URL du plus offrant est encodée.

npx skills add https://github.com/bankrbot/skills --skill qrcoin

Enchère QR Coin

Participez aux enchères QR Coin sur la blockchain Base. QR Coin vous permet d'enchérir pour afficher des URLs sur des codes QR — l'URL du plus offrant est encodée quand l'enchère se termine.

Contrats (Base Mainnet)

Contrat Adresse
QR Auction 0x7309779122069EFa06ef71a45AE0DB55A259A176
USDC 0x833589fCD6eDb6E08f4c7c32D4f71b54bdA02913

Fonctionnement

  1. Chaque enchère s'exécute pendant une période fixe (~24h)
  2. Les enchérisseurs soumettent des URLs avec de l'USDC (6 décimales — 1 USDC = 1000000 unités)
  3. Créer une nouvelle enchère coûte ~11,11 USDC (createBidReserve)
  4. Contribuer à une enchère existante coûte ~1,00 USDC (contributeReserve)
  5. L'enchère la plus élevée gagne ; l'URL du gagnant est encodée dans le code QR
  6. Les perdants sont remboursés ; les gagnants reçoivent des tokens QR

Requêtes sur le statut de l'enchère

Note : Les exemples ci-dessous utilisent https://mainnet.base.org (RPC public). Vous pouvez substituer votre propre endpoint RPC si préféré.

Obtenir l'ID du token courant

Interrogez toujours ceci en premier pour obtenir l'ID de l'enchère active avant d'enchérir.

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"

Obtenir l'heure de fin de l'enchère

# D'abord obtenir l'ID du token courant, puis l'utiliser ici
TOKEN_ID=329  # Remplacer par le résultat de 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"

Obtenir les prix de réserve

# Réserve pour créer une enchère (~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"}'

# Réserve pour contribuer (~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

Les enchères QR Coin nécessitent des transactions USDC sur Base. Utilisez Bankr pour les exécuter — Bankr gère :

  • L'analyse de la signature de fonction et l'encodage des paramètres
  • L'estimation du gas
  • La signature et la soumission des transactions
  • La surveillance de la confirmation

Étape 1 : Approuver l'USDC (Une seule fois)

Avant d'enchérir, approuvez le contrat d'enchère pour dépenser l'USDC :

Approve 50 USDC to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base

Étape 2 : Créer une nouvelle enchère

Pour démarrer une nouvelle enchère pour votre URL :

Fonction : createBid(uint256 tokenId, string url, string name) Contrat : 0x7309779122069EFa06ef71a45AE0DB55A259A176 Coût : ~11,11 USDC

Important : Interrogez toujours currentTokenId() en premier pour obtenir l'ID de l'enchère active.

Exemple de prompt pour Bankr :

Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base
calling createBid(329, "https://example.com", "MyName")

Étape 3 : Contribuer à une enchère existante

Pour ajouter des fonds à l'enchère d'une URL existante :

Fonction : contributeToBid(uint256 tokenId, string url, string name) Contrat : 0x7309779122069EFa06ef71a45AE0DB55A259A176 Coût : ~1,00 USDC par contribution

Exemple de prompt pour Bankr :

Send transaction to 0x7309779122069EFa06ef71a45AE0DB55A259A176 on Base
calling contributeToBid(329, "https://grokipedia.com/page/debtreliefbot", "MerkleMoltBot")

Sélecteurs de fonction

Fonction Sélecteur Paramètres
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

Codes d'erreur

Erreur Signification Solution
RESERVE_PRICE_NOT_MET Montant d'enchère inférieur au minimum Vérifier les prix de réserve
URL_ALREADY_HAS_BID L'URL a déjà une enchère Utiliser contributeToBid à la place
BID_NOT_FOUND L'URL n'a pas d'enchère existante Utiliser createBid à la place
AUCTION_OVER L'enchère actuelle est terminée Attendre la prochaine enchère
AUCTION_NOT_STARTED L'enchère n'a pas commencé Attendre le début de l'enchère
INSUFFICIENT_ALLOWANCE USDC non approuvé Approuver l'USDC en premier

Flux de travail typique

  1. Interroger currentTokenId() — Obtenir l'ID de l'enchère active
  2. Vérifier le statut de l'enchère — Confirmer le temps restant
  3. Approuver l'USDC — Approbation unique pour le contrat d'enchère
  4. Décider l'action :
    • Nouvelle URL : Utiliser createBid (~11,11 USDC)
    • Soutenir une URL existante : Utiliser contributeToBid (~1,00 USDC)
  5. Surveiller — Guetter les surenchères et contribuer davantage si nécessaire
  6. Réclamer — Les gagnants reçoivent des tokens QR ; les perdants sont remboursés

Liens

Conseils

  • Commencer petit : Contribuer à des enchères existantes (~1 USDC) pour apprendre le flux
  • Vérifier le timing : Les enchères ont des heures de fin fixes ; planifier en conséquence
  • Surveiller les enchères : D'autres peuvent vous surenchérir ; surveiller l'enchère
  • Utiliser Bankr : Laisser Bankr gérer la signature et l'exécution des transactions
  • Spécifier Base : Toujours inclure "on Base" quand vous utilisez Bankr

💡 Conseil pro : Contribuer à une enchère existante est moins cher que d'en créer une nouvelle. Vérifier si quelqu'un a déjà enchéri pour votre URL avant de créer une nouvelle enchère.

Skills similaires