← Back to Skills Marketplace
cinnabarhorse

Aavegotchi GBM Skill

by cinnabarhorse · GitHub ↗ · v0.1.0
cross-platform ✓ Security Clean
664
Downloads
0
Stars
3
Active Installs
1
Versions
Install in OpenClaw
/install aavegotchi-gbm-skill
Description
View, create, cancel, bid, and claim Aavegotchi GBM auctions on Base mainnet (8453). Subgraph-first discovery (Goldsky), with onchain verification + executio...
README (SKILL.md)

Safety Rules

  • 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 highestBid you pass into 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 "\x3CAUCTION_ID>" to avoid accidental shell interpolation. Replace them with literal values only after validation.

Quick validators (replace the placeholder values):

python3 - \x3C\x3C'PY'
import re

auction_id = "\x3CAUCTION_ID>"                 # digits only
token_contract = "\x3CTOKEN_CONTRACT_ADDRESS>" # 0x + 40 hex chars
token_id = "\x3CTOKEN_ID>"                     # digits only
amount = "\x3CTOKEN_AMOUNT>"                   # digits only

if 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):

export BASE_MAINNET_RPC="${BASE_MAINNET_RPC:-https://mainnet.base.org}"
export GBM_DIAMOND="${GBM_DIAMOND:-0x80320A0000C7A6a34086E2ACAD6915Ff57FfDA31}"
export GHST="${GHST:-0xcD2F22236DD9Dfe2356D7C543161D4d260FD9BcB}"
export USDC="${USDC:-0x833589fCD6eDb6E08f4c7C32D4f71b54BDA02913}"
export GBM_SUBGRAPH_URL="${GBM_SUBGRAPH_URL:-https://api.goldsky.com/api/public/project_cmh3flagm0001r4p25foufjtt/subgraphs/aavegotchi-gbm-baazaar-base/prod/gn}"
export DRY_RUN="${DRY_RUN:-1}"
export SLIPPAGE_PCT="${SLIPPAGE_PCT:-1}"

Notes:

  • Commands below use ~/.foundry/bin/cast so they work in cron/non-interactive shells.

View / List Auctions (Subgraph First)

See references/subgraph.md for canonical queries.

Auction by id (quick):

curl -s "$GBM_SUBGRAPH_URL" -H 'content-type: application/json' ${GOLDSKY_API_KEY:+-H "Authorization: Bearer $GOLDSKY_API_KEY"} --data '{
  "query":"query($id:ID!){ auction(id:$id){ id type contractAddress tokenId quantity seller highestBid highestBidder totalBids startsAt endsAt claimAt claimed cancelled presetId category buyNowPrice startBidPrice } }",
  "variables":{"id":"\x3CAUCTION_ID>"}
}'

Active auctions (ends soonest first):

NOW=$(date +%s)
curl -s "$GBM_SUBGRAPH_URL" -H 'content-type: application/json' ${GOLDSKY_API_KEY:+-H "Authorization: Bearer $GOLDSKY_API_KEY"} --data "{
  \"query\":\"query(\$now:BigInt!){ auctions(first:20, orderBy: endsAt, orderDirection: asc, where:{claimed:false, cancelled:false, startsAt_lte:\$now, endsAt_gt:\$now}){ id type contractAddress tokenId quantity highestBid highestBidder totalBids startsAt endsAt claimAt presetId category seller } }\",
  \"variables\":{\"now\":\"$NOW\"}
}"

Onchain Verification (Required Before Bids / Sends)

The onchain source of truth is the GBM diamond.

Confirm core auction fields (full struct decode):

~/.foundry/bin/cast call "$GBM_DIAMOND" \
  'getAuctionInfo(uint256)((address,uint96,address,uint88,uint88,bool,bool,address,(uint80,uint80,uint56,uint8,bytes4,uint256,uint96,uint96),(uint64,uint64,uint64,uint64,uint256),uint96,uint96))' \
  "\x3CAUCTION_ID>" \
  --rpc-url "$BASE_MAINNET_RPC"

Useful individual getters:

~/.foundry/bin/cast call "$GBM_DIAMOND" 'getAuctionHighestBid(uint256)(uint256)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"
~/.foundry/bin/cast call "$GBM_DIAMOND" 'getAuctionHighestBidder(uint256)(address)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"
~/.foundry/bin/cast call "$GBM_DIAMOND" 'getAuctionStartTime(uint256)(uint256)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"
~/.foundry/bin/cast call "$GBM_DIAMOND" 'getAuctionEndTime(uint256)(uint256)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"
~/.foundry/bin/cast call "$GBM_DIAMOND" 'getContractAddress(uint256)(address)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"
~/.foundry/bin/cast call "$GBM_DIAMOND" 'getTokenId(uint256)(uint256)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"
~/.foundry/bin/cast call "$GBM_DIAMOND" 'getTokenKind(uint256)(bytes4)' "\x3CAUCTION_ID>" --rpc-url "$BASE_MAINNET_RPC"

Create Auction

Onchain method:

  • createAuction((uint80,uint80,uint56,uint8,bytes4,uint256,uint96,uint96),address,uint256)(uint256)

High-level steps:

  1. Ensure the token contract is whitelisted on the GBM diamond (otherwise revert ContractNotAllowed).
  2. Ensure the token is approved to the GBM diamond:
    • ERC721/1155: setApprovalForAll(GBM_DIAMOND,true)
  3. Choose InitiatorInfo:
    • startTime must be in the future.
    • endTime - startTime must be between 3600 and 604800 seconds (1h to 7d).
    • tokenKind is 0x73ad2146 (ERC721) or 0x973bb640 (ERC1155).
    • buyItNowPrice optional; startingBid optional (if nonzero, you must approve GHST for the 4% prepaid fee).
  4. Simulate with cast call using --from "$FROM_ADDRESS".
  5. Broadcast with cast send only when explicitly instructed (DRY_RUN=0).
  6. Post-tx: query subgraph for newest seller auctions and match (contractAddress, tokenId).

Simulate create (ERC721 example):

~/.foundry/bin/cast call "$GBM_DIAMOND" \
  'createAuction((uint80,uint80,uint56,uint8,bytes4,uint256,uint96,uint96),address,uint256)(uint256)' \
  "(\x3CSTART_TIME>,\x3CEND_TIME>,1,\x3CCATEGORY>,0x73ad2146,\x3CTOKEN_ID>,\x3CBUY_NOW_GHST_WEI>,\x3CSTARTING_BID_GHST_WEI>)" \
  "\x3CERC721_CONTRACT_ADDRESS>" "\x3CPRESET_ID>" \
  --from "$FROM_ADDRESS" \
  --rpc-url "$BASE_MAINNET_RPC"

Broadcast create (only when explicitly instructed):

~/.foundry/bin/cast send "$GBM_DIAMOND" \
  'createAuction((uint80,uint80,uint56,uint8,bytes4,uint256,uint96,uint96),address,uint256)(uint256)' \
  "(\x3CSTART_TIME>,\x3CEND_TIME>,1,\x3CCATEGORY>,0x73ad2146,\x3CTOKEN_ID>,\x3CBUY_NOW_GHST_WEI>,\x3CSTARTING_BID_GHST_WEI>)" \
  "\x3CERC721_CONTRACT_ADDRESS>" "\x3CPRESET_ID>" \
  --private-key "$PRIVATE_KEY" \
  --rpc-url "$BASE_MAINNET_RPC"

Post-create (find your newest auctions and confirm):

curl -s "$GBM_SUBGRAPH_URL" -H 'content-type: application/json' ${GOLDSKY_API_KEY:+-H "Authorization: Bearer $GOLDSKY_API_KEY"} --data '{
  "query":"query($seller:Bytes!){ auctions(first:10, orderBy: createdAt, orderDirection: desc, where:{seller:$seller}){ id type contractAddress tokenId quantity createdAt startsAt endsAt claimed cancelled } }",
  "variables":{"seller":"\x3CFROM_ADDRESS_LOWERCASE>"}
}'

Cancel Auction

Onchain method:

  • cancelAuction(uint256)

Steps:

  1. Subgraph: check claimed, cancelled, endsAt, highestBid.
  2. Onchain: call getAuctionInfo(auctionId) to verify ownership and state.
  3. Simulate with cast call (--from "$FROM_ADDRESS").
  4. Broadcast only when explicitly instructed.

Simulate:

~/.foundry/bin/cast call "$GBM_DIAMOND" 'cancelAuction(uint256)' "\x3CAUCTION_ID>" \
  --from "$FROM_ADDRESS" \
  --rpc-url "$BASE_MAINNET_RPC"

Broadcast (only when explicitly instructed):

~/.foundry/bin/cast send "$GBM_DIAMOND" 'cancelAuction(uint256)' "\x3CAUCTION_ID>" \
  --private-key "$PRIVATE_KEY" \
  --rpc-url "$BASE_MAINNET_RPC"

Bid With GHST (commitBid)

Onchain method:

  • commitBid(uint256,uint256,uint256,address,uint256,uint256,bytes) (last bytes is ignored; pass 0x)

Steps:

  1. Subgraph: fetch auction fields (id, contractAddress, tokenId, quantity, highestBid, startsAt, endsAt, claimed/cancelled).
  2. Onchain: refetch highestBid and token params; you must pass the exact current onchain highestBid or it reverts UnmatchedHighestBid.
  3. Compute a safe minimum next bid using references/bid-math.md (uses onchain bidDecimals + stepMin).
  4. Ensure GHST allowance to the GBM diamond covers bidAmount.
  5. Simulate via cast call (optional but recommended).
  6. Broadcast only when explicitly instructed.

Simulate:

~/.foundry/bin/cast call "$GBM_DIAMOND" \
  'commitBid(uint256,uint256,uint256,address,uint256,uint256,bytes)' \
  "\x3CAUCTION_ID>" "\x3CBID_AMOUNT_GHST_WEI>" "\x3CHIGHEST_BID_GHST_WEI>" "\x3CTOKEN_CONTRACT_ADDRESS>" "\x3CTOKEN_ID>" "\x3CTOKEN_AMOUNT>" 0x \
  --from "$FROM_ADDRESS" \
  --rpc-url "$BASE_MAINNET_RPC"

Broadcast (only when explicitly instructed):

~/.foundry/bin/cast send "$GBM_DIAMOND" \
  'commitBid(uint256,uint256,uint256,address,uint256,uint256,bytes)' \
  "\x3CAUCTION_ID>" "\x3CBID_AMOUNT_GHST_WEI>" "\x3CHIGHEST_BID_GHST_WEI>" "\x3CTOKEN_CONTRACT_ADDRESS>" "\x3CTOKEN_ID>" "\x3CTOKEN_AMOUNT>" 0x \
  --private-key "$PRIVATE_KEY" \
  --rpc-url "$BASE_MAINNET_RPC"

Bid With USDC Swap (swapAndCommitBid)

Onchain method:

  • swapAndCommitBid((address,uint256,uint256,uint256,address,uint256,uint256,uint256,address,uint256,uint256,bytes))

Struct fields (in order):

  1. tokenIn (USDC)
  2. swapAmount (USDC 6dp)
  3. minGhstOut (GHST wei; must be >= bidAmount)
  4. swapDeadline (unix; must be \x3C= now + 86400)
  5. recipient (refund receiver for excess GHST)
  6. auctionID
  7. bidAmount (GHST wei)
  8. highestBid (must match onchain)
  9. tokenContract
  10. tokenID
  11. amount (tokenAmount/quantity)
  12. _signature (ignored; pass 0x)

Compute swapAmount estimate in references/swap-math.md.

Simulate:

~/.foundry/bin/cast call "$GBM_DIAMOND" \
  'swapAndCommitBid((address,uint256,uint256,uint256,address,uint256,uint256,uint256,address,uint256,uint256,bytes))' \
  "($USDC,\x3CSWAP_AMOUNT_USDC_6DP>,\x3CMIN_GHST_OUT_GHST_WEI>,\x3CSWAP_DEADLINE_UNIX>,${RECIPIENT_ADDRESS:-$FROM_ADDRESS},\x3CAUCTION_ID>,\x3CBID_AMOUNT_GHST_WEI>,\x3CHIGHEST_BID_GHST_WEI>,\x3CTOKEN_CONTRACT_ADDRESS>,\x3CTOKEN_ID>,\x3CTOKEN_AMOUNT>,0x)" \
  --from "$FROM_ADDRESS" \
  --rpc-url "$BASE_MAINNET_RPC"

Broadcast (only when explicitly instructed):

~/.foundry/bin/cast send "$GBM_DIAMOND" \
  'swapAndCommitBid((address,uint256,uint256,uint256,address,uint256,uint256,uint256,address,uint256,uint256,bytes))' \
  "($USDC,\x3CSWAP_AMOUNT_USDC_6DP>,\x3CMIN_GHST_OUT_GHST_WEI>,\x3CSWAP_DEADLINE_UNIX>,${RECIPIENT_ADDRESS:-$FROM_ADDRESS},\x3CAUCTION_ID>,\x3CBID_AMOUNT_GHST_WEI>,\x3CHIGHEST_BID_GHST_WEI>,\x3CTOKEN_CONTRACT_ADDRESS>,\x3CTOKEN_ID>,\x3CTOKEN_AMOUNT>,0x)" \
  --private-key "$PRIVATE_KEY" \
  --rpc-url "$BASE_MAINNET_RPC"

Bid With ETH Swap (swapAndCommitBid)

Same method as above, but:

  • tokenIn = 0x0000000000000000000000000000000000000000
  • --value \x3CSWAP_AMOUNT_WEI> must equal the swapAmount you pass inside the tuple.

Broadcast (only when explicitly instructed):

~/.foundry/bin/cast send "$GBM_DIAMOND" \
  'swapAndCommitBid((address,uint256,uint256,uint256,address,uint256,uint256,uint256,address,uint256,uint256,bytes))' \
  "(0x0000000000000000000000000000000000000000,\x3CSWAP_AMOUNT_WEI>,\x3CMIN_GHST_OUT_GHST_WEI>,\x3CSWAP_DEADLINE_UNIX>,${RECIPIENT_ADDRESS:-$FROM_ADDRESS},\x3CAUCTION_ID>,\x3CBID_AMOUNT_GHST_WEI>,\x3CHIGHEST_BID_GHST_WEI>,\x3CTOKEN_CONTRACT_ADDRESS>,\x3CTOKEN_ID>,\x3CTOKEN_AMOUNT>,0x)" \
  --value "\x3CSWAP_AMOUNT_WEI>" \
  --private-key "$PRIVATE_KEY" \
  --rpc-url "$BASE_MAINNET_RPC"

Claim Auction

Onchain methods:

  • claim(uint256)
  • batchClaim(uint256[])

Claim readiness:

  • Auction owner can claim at now >= endsAt.
  • Highest bidder can claim at now >= endsAt + cancellationTime.
    • cancellationTime is readable from storage slot 12 (see references/recipes.md).
    • Subgraph may provide claimAt (if populated), but always verify onchain.

Simulate:

~/.foundry/bin/cast call "$GBM_DIAMOND" 'claim(uint256)' "\x3CAUCTION_ID>" \
  --from "$FROM_ADDRESS" \
  --rpc-url "$BASE_MAINNET_RPC"

Broadcast (only when explicitly instructed):

~/.foundry/bin/cast send "$GBM_DIAMOND" 'claim(uint256)' "\x3CAUCTION_ID>" \
  --private-key "$PRIVATE_KEY" \
  --rpc-url "$BASE_MAINNET_RPC"

Optional: Buy Now

Onchain methods:

  • buyNow(uint256)
  • swapAndBuyNow((address,uint256,uint256,uint256,address,uint256))

These are not required for the primary use case, but are adjacent to bidding flows. If you use them, follow the same safety gating:

  • refetch from subgraph
  • verify onchain price/state
  • simulate (cast call)
  • only broadcast when explicitly instructed

Smoke Tests (No Funds Required)

  1. Subgraph reachable (introspection lists auction, auctions, bid, bids):
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\")])'
  1. Subgraph data sane:
curl -s "$GBM_SUBGRAPH_URL" -H 'content-type: application/json' ${GOLDSKY_API_KEY:+-H "Authorization: Bearer $GOLDSKY_API_KEY"} --data '{\"query\":\"query($id:ID!){ auction(id:$id){ id contractAddress tokenId } }\",\"variables\":{\"id\":\"0\"}}'
  1. Onchain reachable + matches subgraph:
~/.foundry/bin/cast call "$GBM_DIAMOND" \
  'getAuctionInfo(uint256)((address,uint96,address,uint88,uint88,bool,bool,address,(uint80,uint80,uint56,uint8,bytes4,uint256,uint96,uint96),(uint64,uint64,uint64,uint64,uint256),uint96,uint96))' \
  0 \
  --rpc-url "$BASE_MAINNET_RPC"

Common Failure Modes

  • UnmatchedHighestBid: you passed a stale highestBid param. Refetch onchain and retry.
  • InvalidAuctionParams: token contract / id / amount mismatch. Refetch and verify.
  • AuctionNotStarted / AuctionEnded: timing mismatch. Check startsAt/endsAt (subgraph + onchain).
  • AuctionClaimed: already claimed or cancelled. Check claimed (subgraph + onchain).
  • BiddingNotAllowed: diamond paused, contract bidding disabled, or re-entrancy lock. Refetch onchain state.
  • Swap errors:
    • LibTokenSwap: swapAmount must be > 0
    • LibTokenSwap: deadline expired
    • LibTokenSwap: Insufficient output amount (increase swapAmount or slippage)
Usage Guidance
This skill appears to do what it claims (query auctions and optionally send transactions). Before installing or enabling it: 1) Do not put your primary wallet private key into an environment variable unless you understand the risk — prefer a minimal/ephemeral key funded only with the amount you expect to spend, or use a remote signer/hardware wallet if possible. 2) Keep DRY_RUN at 1 while testing; only set DRY_RUN=0 when you explicitly review and approve a broadcast step. 3) Verify GBM_DIAMOND, GHST, USDC, and GBM_SUBGRAPH_URL match the official contract addresses and endpoints you expect. 4) Because the skill can sign transactions, restrict autonomous use (only allow user-invoked flows) unless you fully trust the agent and its runtime environment. 5) Review the linked GitHub repo and the SKILL.md recipes to confirm there are no changes from upstream before use.
Capability Analysis
Type: OpenClaw Skill Name: aavegotchi-gbm-skill Version: 0.1.0 The skill bundle is designed for interacting with Aavegotchi GBM auctions on Base mainnet. It explicitly prioritizes safety, with extensive 'Safety Rules' and 'Shell Input Safety' sections in `SKILL.md` that instruct the AI agent to default to dry runs, never log private keys, and strictly validate user inputs to prevent RCE. All network calls are to known, legitimate endpoints (Goldsky subgraph, CoinGecko API), and on-chain interactions use the Foundry `cast` tool with clear distinctions between simulation (`cast call`) and broadcasting (`cast send`), the latter requiring explicit instruction. The Python snippets are safely embedded and used for calculations and validation, not arbitrary code execution. There is no evidence of data exfiltration to unauthorized endpoints, persistence mechanisms, or obfuscation for malicious intent.
Capability Assessment
Purpose & Capability
The declared binaries (cast, curl, python3) and environment variables (PRIVATE_KEY, FROM_ADDRESS, RPC, GBM_DIAMOND, token addresses, subgraph URL, slippage/prices) are exactly what a tool that reads auctions, simulates, and optionally broadcasts transactions on Base would need. There are no apparently unrelated credentials or binaries requested.
Instruction Scope
SKILL.md is explicit about limiting scope: it uses the Goldsky subgraph and onchain cast calls, requires chain-id and key/address verification, re-fetches subgraph before actions, and provides validators to avoid unsafe shell interpolation. It does not instruct reading arbitrary host files or sending data to unrelated endpoints beyond Goldsky and CoinGecko (price lookup).
Install Mechanism
Instruction-only skill — there is no install spec and no code files executed from a remote URL. This minimizes disk/write risk.
Credentials
The primary credential is PRIVATE_KEY, which is appropriate for signing transactions. Most other env vars are relevant. One small inconsistency: the registry metadata lists several env vars as required (e.g., DRY_RUN, RECIPIENT_ADDRESS, GHST_USD_PRICE, ETH_USD_PRICE) while SKILL.md treats some of them as optional/defaulted; that is a metadata vs documentation mismatch but not a functional red flag. Because PRIVATE_KEY is required, this is a sensitive privilege — the skill legitimately needs it to broadcast, but you must protect it.
Persistence & Privilege
The skill does not request permanent platform-wide privileges (always:false) and has no install steps. However, it can sign and broadcast transactions using the provided PRIVATE_KEY. While autonomous invocation alone is normal, giving a skill a raw private key increases blast radius if the agent is permitted to act autonomously — the SKILL.md mitigations (DRY_RUN default, explicit checks) partially reduce risk but rely on correct operator behaviour.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install aavegotchi-gbm-skill
  3. After installation, invoke the skill by name or use /aavegotchi-gbm-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release: subgraph-first GBM auctions skill
Metadata
Slug aavegotchi-gbm-skill
Version 0.1.0
License
All-time Installs 3
Active Installs 3
Total Versions 1
Frequently Asked Questions

What is Aavegotchi GBM Skill?

View, create, cancel, bid, and claim Aavegotchi GBM auctions on Base mainnet (8453). Subgraph-first discovery (Goldsky), with onchain verification + executio... It is an AI Agent Skill for Claude Code / OpenClaw, with 664 downloads so far.

How do I install Aavegotchi GBM Skill?

Run "/install aavegotchi-gbm-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Aavegotchi GBM Skill free?

Yes, Aavegotchi GBM Skill is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Aavegotchi GBM Skill support?

Aavegotchi GBM Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Aavegotchi GBM Skill?

It is built and maintained by cinnabarhorse (@cinnabarhorse); the current version is v0.1.0.

💬 Comments