{
  "schemaVersion": "1.0",
  "item": {
    "slug": "aavegotchi-gotchiverse",
    "name": "Aavegotchi Gotchiverse",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/cinnabarhorse/aavegotchi-gotchiverse",
    "canonicalUrl": "https://clawhub.ai/cinnabarhorse/aavegotchi-gotchiverse",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/aavegotchi-gotchiverse",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=aavegotchi-gotchiverse",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/access-rights.md",
      "references/addresses.md",
      "references/failure-modes.md",
      "references/installation-recipes.md",
      "references/realm-recipes.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/aavegotchi-gotchiverse"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/aavegotchi-gotchiverse",
    "agentPageUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse/agent",
    "manifestUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Safety Rules",
        "body": "Default to DRY_RUN=1. Never broadcast unless explicitly instructed.\nAlways verify Base mainnet before any action:\n\n~/.foundry/bin/cast chain-id --rpc-url \"${BASE_MAINNET_RPC:-https://mainnet.base.org}\" must be 8453.\n\n\nAlways verify key/address alignment before any broadcast:\n\n~/.foundry/bin/cast wallet address --private-key \"$PRIVATE_KEY\" must equal FROM_ADDRESS.\n\n\nAlways refetch from subgraph immediately before state-changing simulate/broadcast steps.\nAlways revalidate critical values onchain right before cast send.\nNever print or log PRIVATE_KEY.\nTreat all user/subgraph values as untrusted shell input."
      },
      {
        "title": "Shell Input Safety (Avoid RCE)",
        "body": "Rules:\n\nNever use eval, bash -c, sh -c with user values.\nOnly substitute addresses matching 0x + 40 hex chars.\nOnly substitute uint values containing digits only.\nKeep placeholders quoted in commands until validated.\n\nQuick validators:\n\npython3 - <<'PY'\nimport re\n\nchecks = {\n  \"address\": (\"<ADDRESS>\", r\"0x[a-fA-F0-9]{40}\"),\n  \"uint\": (\"<UINT>\", r\"[0-9]+\"),\n}\n\nfor name, (value, pattern) in checks.items():\n    if not re.fullmatch(pattern, value):\n        raise SystemExit(f\"invalid {name}: {value}\")\n\nprint(\"ok\")\nPY"
      },
      {
        "title": "Required Setup",
        "body": "Required env vars:\n\nPRIVATE_KEY\nFROM_ADDRESS\nBASE_MAINNET_RPC\nDRY_RUN\nREALM_DIAMOND\nINSTALLATION_DIAMOND\nTILE_DIAMOND\nAAVEGOTCHI_DIAMOND\nFUD, FOMO, ALPHA, KEK, GLTR\nGOTCHIVERSE_SUBGRAPH_URL\nCORE_SUBGRAPH_URL\n\nOptional env vars:\n\nGOLDSKY_API_KEY for auth header (public endpoints work without it).\n\nUse canonical defaults from references/addresses.md."
      },
      {
        "title": "Scope",
        "body": "Player operations only:\n\nChanneling\nSurvey + harvest claim\nCraft/claim/reduce queues\nEquip/unequip/move/batch equip\nInstallation upgrades (queued + instant)\nAccess-right read/write\n\nOut of scope:\n\nOwner/admin governance functions (pause/freeze/set vars/deprecations/address reconfiguration)."
      },
      {
        "title": "Subgraph-First Workflow",
        "body": "Discover state via GOTCHIVERSE_SUBGRAPH_URL and CORE_SUBGRAPH_URL.\nValidate current onchain values with cast call.\nSimulate with cast call --from \"$FROM_ADDRESS\".\nBroadcast with cast send --private-key \"$PRIVATE_KEY\" only when explicitly instructed.\n\nCanonical queries and notes: references/subgraph.md."
      },
      {
        "title": "1) Parcel Discovery + Preflight",
        "body": "Use:\n\nreferences/subgraph.md for parcel/installations/tiles/access-right discovery.\nreferences/realm-recipes.md preflight checks for:\n\nparcel owner and access right\naltar presence/level\ngotchi lending/listing/kinship checks"
      },
      {
        "title": "2) Survey + Harvest",
        "body": "Functions:\n\nstartSurveying(uint256)\nclaimAvailableAlchemica(uint256,uint256,bytes)\nclaimAllAvailableAlchemica(uint256[],uint256,bytes)\n\nUse references/realm-recipes.md for read/simulate/broadcast commands."
      },
      {
        "title": "3) Channel Alchemica",
        "body": "Function:\n\nchannelAlchemica(uint256,uint256,uint256,bytes)\n\nPreflight requirements:\n\ncorrect access right\ngotchi not actively listed for lending (unless lent)\ngotchi kinship is sufficient\ngetLastChanneled(gotchiId) passed as _lastChanneled\nparcel altar equipped and cooldown passed\n\nUse references/realm-recipes.md."
      },
      {
        "title": "4) Craft Installations + Build on Parcel",
        "body": "Installation craft/queue functions:\n\ncraftInstallations(uint16[],uint40[])\nbatchCraftInstallations((uint16,uint16,uint40)[])\nclaimInstallations(uint256[])\nreduceCraftTime(uint256[],uint40[])\ngetCraftQueue(address)\n\nBuild functions (Realm):\n\nequipInstallation(...)\nunequipInstallation(...)\nmoveInstallation(...)\nbatchEquip(...)\n\nUse:\n\nreferences/installation-recipes.md\nreferences/realm-recipes.md"
      },
      {
        "title": "5) Craft Tiles + Build on Parcel",
        "body": "Tile craft/queue functions:\n\ncraftTiles(uint16[])\nbatchCraftTiles((uint16,uint16,uint40)[])\nclaimTiles(uint256[])\nreduceCraftTime(uint256[],uint40[])\ngetCraftQueue(address)\n\nBuild functions (Realm):\n\nequipTile(...)\nunequipTile(...)\nmoveTile(...)\nbatchEquip(...)\n\nUse:\n\nreferences/tile-recipes.md\nreferences/realm-recipes.md"
      },
      {
        "title": "6) Upgrade Installations",
        "body": "Functions:\n\nupgradeInstallation((...),uint256,bytes,uint40)\ninstantUpgrade((...),uint256,uint256,bytes)\nreduceUpgradeTime(uint256,uint256,uint40,bytes)\nfinalizeUpgrades(uint256[])\ngetParcelUpgradeQueue(uint256)\ngetUserUpgradeQueueNew(address)\nparcelQueueEmpty(uint256)\n\nUse references/installation-recipes.md."
      },
      {
        "title": "7) Access Rights",
        "body": "Functions:\n\nsetParcelsAccessRights(...)\nsetParcelsAccessRightWithWhitelists(...)\ngetParcelsAccessRights(...)\ngetParcelsAccessRightsWhitelistIds(...)\n\nAction rights 0..6 and access modes 0..4 are documented in:\n\nreferences/access-rights.md"
      },
      {
        "title": "Smoke Tests",
        "body": "Run these before first usage and after env changes:\n\nSubgraph introspection checks in references/subgraph.md\nAddress/contract checks in references/addresses.md\nNo-op selector checks in:\n\nreferences/realm-recipes.md\nreferences/installation-recipes.md\nreferences/tile-recipes.md"
      },
      {
        "title": "Failure Modes",
        "body": "Use references/failure-modes.md for:\n\naccess-right reverts\ncooldown/kinship/channeling reverts\ncoordinate/grid placement reverts\nqueue state reverts\nupgrade hash/queue capacity reverts\ndeprecation/GLTR/ownership mismatches"
      }
    ],
    "body": "Safety Rules\nDefault to DRY_RUN=1. Never broadcast unless explicitly instructed.\nAlways verify Base mainnet before any action:\n~/.foundry/bin/cast chain-id --rpc-url \"${BASE_MAINNET_RPC:-https://mainnet.base.org}\" must be 8453.\nAlways verify key/address alignment before any broadcast:\n~/.foundry/bin/cast wallet address --private-key \"$PRIVATE_KEY\" must equal FROM_ADDRESS.\nAlways refetch from subgraph immediately before state-changing simulate/broadcast steps.\nAlways revalidate critical values onchain right before cast send.\nNever print or log PRIVATE_KEY.\nTreat all user/subgraph values as untrusted shell input.\nShell Input Safety (Avoid RCE)\n\nRules:\n\nNever use eval, bash -c, sh -c with user values.\nOnly substitute addresses matching 0x + 40 hex chars.\nOnly substitute uint values containing digits only.\nKeep placeholders quoted in commands until validated.\n\nQuick validators:\n\npython3 - <<'PY'\nimport re\n\nchecks = {\n  \"address\": (\"<ADDRESS>\", r\"0x[a-fA-F0-9]{40}\"),\n  \"uint\": (\"<UINT>\", r\"[0-9]+\"),\n}\n\nfor name, (value, pattern) in checks.items():\n    if not re.fullmatch(pattern, value):\n        raise SystemExit(f\"invalid {name}: {value}\")\n\nprint(\"ok\")\nPY\n\nRequired Setup\n\nRequired env vars:\n\nPRIVATE_KEY\nFROM_ADDRESS\nBASE_MAINNET_RPC\nDRY_RUN\nREALM_DIAMOND\nINSTALLATION_DIAMOND\nTILE_DIAMOND\nAAVEGOTCHI_DIAMOND\nFUD, FOMO, ALPHA, KEK, GLTR\nGOTCHIVERSE_SUBGRAPH_URL\nCORE_SUBGRAPH_URL\n\nOptional env vars:\n\nGOLDSKY_API_KEY for auth header (public endpoints work without it).\n\nUse canonical defaults from references/addresses.md.\n\nScope\n\nPlayer operations only:\n\nChanneling\nSurvey + harvest claim\nCraft/claim/reduce queues\nEquip/unequip/move/batch equip\nInstallation upgrades (queued + instant)\nAccess-right read/write\n\nOut of scope:\n\nOwner/admin governance functions (pause/freeze/set vars/deprecations/address reconfiguration).\nSubgraph-First Workflow\nDiscover state via GOTCHIVERSE_SUBGRAPH_URL and CORE_SUBGRAPH_URL.\nValidate current onchain values with cast call.\nSimulate with cast call --from \"$FROM_ADDRESS\".\nBroadcast with cast send --private-key \"$PRIVATE_KEY\" only when explicitly instructed.\n\nCanonical queries and notes: references/subgraph.md.\n\nRunbooks\n1) Parcel Discovery + Preflight\n\nUse:\n\nreferences/subgraph.md for parcel/installations/tiles/access-right discovery.\nreferences/realm-recipes.md preflight checks for:\nparcel owner and access right\naltar presence/level\ngotchi lending/listing/kinship checks\n2) Survey + Harvest\n\nFunctions:\n\nstartSurveying(uint256)\nclaimAvailableAlchemica(uint256,uint256,bytes)\nclaimAllAvailableAlchemica(uint256[],uint256,bytes)\n\nUse references/realm-recipes.md for read/simulate/broadcast commands.\n\n3) Channel Alchemica\n\nFunction:\n\nchannelAlchemica(uint256,uint256,uint256,bytes)\n\nPreflight requirements:\n\ncorrect access right\ngotchi not actively listed for lending (unless lent)\ngotchi kinship is sufficient\ngetLastChanneled(gotchiId) passed as _lastChanneled\nparcel altar equipped and cooldown passed\n\nUse references/realm-recipes.md.\n\n4) Craft Installations + Build on Parcel\n\nInstallation craft/queue functions:\n\ncraftInstallations(uint16[],uint40[])\nbatchCraftInstallations((uint16,uint16,uint40)[])\nclaimInstallations(uint256[])\nreduceCraftTime(uint256[],uint40[])\ngetCraftQueue(address)\n\nBuild functions (Realm):\n\nequipInstallation(...)\nunequipInstallation(...)\nmoveInstallation(...)\nbatchEquip(...)\n\nUse:\n\nreferences/installation-recipes.md\nreferences/realm-recipes.md\n5) Craft Tiles + Build on Parcel\n\nTile craft/queue functions:\n\ncraftTiles(uint16[])\nbatchCraftTiles((uint16,uint16,uint40)[])\nclaimTiles(uint256[])\nreduceCraftTime(uint256[],uint40[])\ngetCraftQueue(address)\n\nBuild functions (Realm):\n\nequipTile(...)\nunequipTile(...)\nmoveTile(...)\nbatchEquip(...)\n\nUse:\n\nreferences/tile-recipes.md\nreferences/realm-recipes.md\n6) Upgrade Installations\n\nFunctions:\n\nupgradeInstallation((...),uint256,bytes,uint40)\ninstantUpgrade((...),uint256,uint256,bytes)\nreduceUpgradeTime(uint256,uint256,uint40,bytes)\nfinalizeUpgrades(uint256[])\ngetParcelUpgradeQueue(uint256)\ngetUserUpgradeQueueNew(address)\nparcelQueueEmpty(uint256)\n\nUse references/installation-recipes.md.\n\n7) Access Rights\n\nFunctions:\n\nsetParcelsAccessRights(...)\nsetParcelsAccessRightWithWhitelists(...)\ngetParcelsAccessRights(...)\ngetParcelsAccessRightsWhitelistIds(...)\n\nAction rights 0..6 and access modes 0..4 are documented in:\n\nreferences/access-rights.md\nSmoke Tests\n\nRun these before first usage and after env changes:\n\nSubgraph introspection checks in references/subgraph.md\nAddress/contract checks in references/addresses.md\nNo-op selector checks in:\nreferences/realm-recipes.md\nreferences/installation-recipes.md\nreferences/tile-recipes.md\nFailure Modes\n\nUse references/failure-modes.md for:\n\naccess-right reverts\ncooldown/kinship/channeling reverts\ncoordinate/grid placement reverts\nqueue state reverts\nupgrade hash/queue capacity reverts\ndeprecation/GLTR/ownership mismatches"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cinnabarhorse/aavegotchi-gotchiverse",
    "publisherUrl": "https://clawhub.ai/cinnabarhorse/aavegotchi-gotchiverse",
    "owner": "cinnabarhorse",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse",
    "downloadUrl": "https://openagent3.xyz/downloads/aavegotchi-gotchiverse",
    "agentUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse/agent",
    "manifestUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/aavegotchi-gotchiverse/agent.md"
  }
}