View, create, cancel, bid, and claim Aavegotchi GBM auctions on Base mainnet (8453). Subgraph-first discovery (Goldsky), with onchain verification + execution via Foundry cast. Safety-first: DRY_RUN defaults to 1 (simulate with cast call; only broadcast with cast send when DRY_RUN=0 and explicitly instructed).
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
View, create, cancel, bid, and claim Aavegotchi GBM auctions on Base mainnet (8453). Subgraph-first discovery (Goldsky), with onchain verification + execution via Foundry cast. Safety-first: DRY_RUN defaults to 1 (simulate with cast call; only broadcast with cast send when DRY_RUN=0 and explicitly instructed).
Default to DRY_RUN=1. Never broadcast unless explicitly instructed.
Always verify Base mainnet:
~/.foundry/bin/cast chain-id --rpc-url "${BASE_MAINNET_RPC:-https://mainnet.base.org}" must be 8453.
Always verify key/address alignment:
~/.foundry/bin/cast wallet address --private-key "$PRIVATE_KEY" must equal $FROM_ADDRESS.
Always refetch from the subgraph immediately before any simulate/broadcast step (auctions can be outbid, ended, claimed, or cancelled).
Always gate onchain immediately before simulating or broadcasting:
ensure the onchain highestBid matches the you pass into / .
highestBid
commitBid
swapAndCommitBid
ensure token params match (token contract, token id, quantity).
Never print or log $PRIVATE_KEY.
Shell Input Safety (Avoid RCE)
This skill includes shell commands. Treat any value you copy from a user or an external source (subgraph responses, chat messages, etc.) as untrusted.
Rules:
Never execute user-provided strings as shell code (avoid eval, bash -c, sh -c).
Only substitute addresses that match 0x + 40 hex chars.
Only substitute uint values that are base-10 digits (no commas, no decimals).
In the command examples below, auction-specific inputs are written as quoted placeholders like "<AUCTION_ID>" to avoid accidental shell interpolation. Replace them with literal values only after validation.
Quick validators (replace the placeholder values):
python3 - <<'PY'
import re
auction_id = "<AUCTION_ID>"# digits only
token_contract = "<TOKEN_CONTRACT_ADDRESS>"# 0x + 40 hex chars
token_id = "<TOKEN_ID>"# digits only
amount = "<TOKEN_AMOUNT>"# digits onlyif not re.fullmatch(r"[0-9]+", auction_id):
raise SystemExit("AUCTION_ID must be base-10 digits only")
if not re.fullmatch(r"0x[a-fA-F0-9]{40}", token_contract):
raise SystemExit("TOKEN_CONTRACT_ADDRESS must be a 0x + 40-hex address")
if not re.fullmatch(r"[0-9]+", token_id):
raise SystemExit("TOKEN_ID must be base-10 digits only")
if not re.fullmatch(r"[0-9]+", amount):
raise SystemExit("TOKEN_AMOUNT must be base-10 digits only")
print("ok")
PY
Required Setup
Required env vars:
PRIVATE_KEY: EOA private key used for cast send (never print/log).
FROM_ADDRESS: EOA address that owns NFTs and will submit txs.
BASE_MAINNET_RPC: RPC URL. If unset, use https://mainnet.base.org.
GBM_SUBGRAPH_URL: Goldsky subgraph endpoint for auctions.
Optional env vars:
DRY_RUN: 1 (default) to only simulate via cast call. Set to 0 to broadcast via cast send.
RECIPIENT_ADDRESS: for swap flows; receives any excess GHST refunded by the contract. Defaults to FROM_ADDRESS.
GOLDSKY_API_KEY: optional; if set, include Authorization: Bearer ... header in subgraph calls.
SLIPPAGE_PCT: defaults to 1 (%); used in swapAmount estimate math.
GHST_USD_PRICE, ETH_USD_PRICE: optional overrides; if unset, fetch from CoinGecko in the swap math snippets.
Recommended defaults (override via env if needed):
curl -s "$GBM_SUBGRAPH_URL" -H 'content-type: application/json'${GOLDSKY_API_KEY:+-H "Authorization: Bearer $GOLDSKY_API_KEY"} --data '{ "query":"{ __schema { queryType { fields { name } } } }" }' \
| python3 -c 'import json,sys; f=[x[\"name\"] for x in json.load(sys.stdin)[\"data\"][\"__schema\"][\"queryType\"][\"fields\"]]; print([n for n in f if n in (\"auction\",\"auctions\",\"bid\",\"bids\")])'