Install
openclaw skills install gigaverse-playEnter the Gigaverse as an AI agent. Create a wallet, quest through dungeons, battle echoes, and earn rewards. The dungeon awaits.
openclaw skills install gigaverse-playEnter the Gigaverse as an AI agent. Create a wallet, quest through dungeons, battle echoes, and earn rewards.
npx skills add gigaverse-games/play
Gigaverse is a rogue-lite dungeon crawler on Abstract chain where AI agents can:
⚔️ The dungeon doesn't care if you're human or AI. Only that you survive.
Player-facing names vs API actions:
| Player Term | API Action | Effect |
|---|---|---|
| ⚔️ Sword | rock | High ATK, no DEF — beats Spell |
| 🛡️ Shield | paper | No ATK, high DEF — beats Sword |
| ✨ Spell | scissor | Balanced ATK/DEF — beats Shield |
Always use API action names (rock, paper, scissor) in code.
Use player names (Sword, Shield, Spell) when displaying to humans.
| File | Description |
|---|---|
| SKILL.md (this file) | Main skill documentation |
| CONFIG.md | Configuration options (modes, preferences) |
| HEARTBEAT.md | Energy monitoring & notifications |
| references/onboarding.md | New player setup flow |
| references/api.md | Full API reference |
| references/dungeons.md | Dungeon types, room structure, actions |
| references/enemies.md | Enemy names, stats, HP/Shield |
| references/items.md | Game items, rarity levels, rare alerts |
| references/run-tracking.md | Loot tracking, daily tallies, summaries |
| references/skills-inventory.md | Skills, leveling, inventory APIs |
| references/leveling.md | Leveling guide, stat allocation by strategy |
| references/factions.md | Faction IDs, names, population stats |
| references/juice.md | GigaJuice benefits, API, notification logic |
| scripts/setup.sh | Full setup wizard (wallet + mode) |
| scripts/setup-wallet.sh | Wallet generation/import only |
| scripts/auth.sh | Authenticate with Gigaverse |
Base URL: https://gigaverse.io/api
Agent decides everything automatically — username, faction, combat, looting. Best for: Background operation, fully automated gameplay.
Agent asks at each decision point before acting. Best for: Human wants to participate in decisions.
./scripts/setup.sh
The setup wizard asks:
Saves to ~/.config/gigaverse/config.json
Or setup manually:
./scripts/setup-wallet.sh generate # New wallet
./scripts/setup-wallet.sh import "0x..." # Import key
🔒 CRITICAL SECURITY WARNING:
./scripts/auth.sh
This signs a login message and exchanges it for a JWT token.
Add energy monitoring to your periodic tasks. See HEARTBEAT.md for details.
## Gigaverse (every 30 minutes)
If 30 minutes since last check:
1. Check energy at /offchain/player/energy/{address}
2. If energy is full, notify human
3. Update lastGigaverseCheck timestamp
This way you'll remind your human when they're charged up and ready to quest!
Before entering dungeons, you need:
Check your status:
curl https://gigaverse.io/api/game/account/YOUR_ADDRESS
curl https://gigaverse.io/api/factions/player/YOUR_ADDRESS
Gate check — ALL must be true:
noob != nullusername existsFACTION_CID > 0See references/onboarding.md for full onboarding flow including mint and faction selection.
curl https://gigaverse.io/api/offchain/player/energy/YOUR_ADDRESS
JWT=$(cat ~/.secrets/gigaverse-jwt.txt)
curl -X POST https://gigaverse.io/api/game/dungeon/action \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{
"action": "start_run",
"dungeonId": 1,
"actionToken": 0,
"data": {
"consumables": [],
"isJuiced": false,
"index": 0
}
}'
Every response returns a new actionToken. Always use the latest token for your next action:
start_run (token: 0) → response token: 1
rock (token: 1) → response token: 2
loot_one (token: 2) → response token: 3
Server rejects stale tokens (~5s anti-spam window). If stuck, resync with /game/dungeon/state.
Battles use Sword/Shield/Spell (rock-paper-scissors) mechanics:
# Choose your move (use LATEST actionToken!)
curl -X POST https://gigaverse.io/api/game/dungeon/action \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"action": "rock", "dungeonId": 1, "actionToken": LATEST_TOKEN, "data": {}}'
API actions: rock (Sword), paper (Shield), scissor (Spell)
After defeating enemies, select your reward:
curl -X POST https://gigaverse.io/api/game/dungeon/action \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"action": "loot_one", "dungeonId": 1, "actionToken": 2}'
Actions: loot_one, loot_two, loot_three, loot_four
| Action | Purpose |
|---|---|
use_item | Use a consumable |
heal_or_damage | Heal or deal damage |
flee | Escape encounter |
cancel_run | Abandon run |
curl https://gigaverse.io/api/game/dungeon/state \
-H "Authorization: Bearer $JWT"
Check energy before starting:
curl https://gigaverse.io/api/offchain/player/energy/YOUR_ADDRESS
Check dungeon costs:
curl https://gigaverse.io/api/game/dungeon/today \
-H "Authorization: Bearer $JWT"
GigaJuice is a premium subscription that enhances your Gigaverse experience. Juiced players get significant gameplay advantages.
See references/juice.md for full documentation.
| Benefit | Without Juice | With Juice |
|---|---|---|
| ⚡ Max Energy | 240 | 420 |
| 🔄 Energy Regen | 10/hour | 17.5/hour |
| 🎲 Upgrade Options | 3 choices | 4 choices (50% chance) |
| 🧪 Potion Slots | 2 | 3 |
| 🏃 Daily Dungetron | 10 runs | 12 runs |
| 🎣 Daily Fishing | 10 casts | 20 casts |
| 💎 ROM Production | Base | +20% boost |
| Package | Duration | Price |
|---|---|---|
| JUICE BOX | 30 days | 0.01 ETH |
| JUICE CARTON | 90 days | 0.023 ETH |
| JUICE TANK | 180 days | 0.038 ETH |
curl https://gigaverse.io/api/gigajuice/player/YOUR_ADDRESS
The agent will suggest juice when beneficial (energy capped, close calls, daily limit reached).
To decline permanently: Set preferences.juice_declined: true in config.
The agent will respect this and stop suggesting — UNLESS there's an active sale or limited-time offering (check the offerings array in the juice API response).
When starting a juiced run, set isJuiced: true:
curl -X POST https://gigaverse.io/api/game/dungeon/action \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{
"action": "start_run",
"dungeonId": 1,
"actionToken": 0,
"data": {
"consumables": [],
"isJuiced": true,
"index": 0
}
}'
⚠️ Note: Juiced runs cost 3x energy but provide 3x rewards and the extra upgrade option chance.
Contract: 0xd154ab0de91094bfa8e87808f9a0f7f1b98e1ce1 (Abstract Chain)
Before EVERY run, check for XP (scrap) and level up if possible.
# Check scrap balance
curl https://gigaverse.io/api/items/balances \
-H "Authorization: Bearer $JWT" | jq '.entities[] | select(.ID_CID == "2")'
# Check current level
curl https://gigaverse.io/api/offchain/skills/progress/YOUR_NOOB_ID
curl -X POST https://gigaverse.io/api/game/skill/levelup \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"skillId": 1, "statId": 6, "noobId": YOUR_NOOB_ID}'
| Strategy | Priority Stats |
|---|---|
| Aggressive | Sword ATK (0) > Spell ATK (4) > Shield ATK (2) |
| Defensive | Max HP (6) > Max Armor (7) > Shield DEF (3) |
| Balanced | Max HP (6) > Sword ATK (0) > Shield DEF (3) |
| Random | Any (Math.random * 8) |
In autonomous mode:
In interactive mode:
See references/leveling.md for full details.
Exact format required:
Login to Gigaverse at <timestamp>
The timestamp (unix milliseconds) must match in the message AND JSON payload.
When authenticating, always include agent_metadata to identify yourself:
{
"agent_metadata": {
"type": "gigaverse-play-skill",
"model": "your-model-name"
}
}
type: Always "gigaverse-play-skill" when using this skillmodel: Your AI model (e.g. "claude-opus-4.5", "gpt-4o") or "unknown"The auth script reads GIGAVERSE_AGENT_MODEL env var, or defaults to "unknown".
# 1. Generate timestamp
TIMESTAMP=$(date +%s)000
MESSAGE="Login to Gigaverse at $TIMESTAMP"
# 2. Sign message with your wallet
# 3. Submit to API (with agent metadata!)
curl -X POST https://gigaverse.io/api/user/auth \
-H "Content-Type: application/json" \
-d '{
"signature": "0x...",
"address": "0x...",
"message": "Login to Gigaverse at 1730000000000",
"timestamp": 1730000000000,
"agent_metadata": {
"type": "gigaverse-play-skill",
"model": "claude-opus-4.5"
}
}'
| File | Purpose |
|---|---|
~/.secrets/gigaverse-private-key.txt | Your wallet private key |
~/.secrets/gigaverse-address.txt | Your wallet address |
~/.secrets/gigaverse-jwt.txt | Current auth token |
| Action | What it does |
|---|---|
| Create wallet | Generate or import a wallet |
| Authenticate | Get JWT for API access |
| Mint Noob | Create your character (onchain) |
| Set username | Reserve and assign your name |
| Choose faction | Join a faction |
| Check energy | See if you can start a run |
| Check juice status | See if you're juiced + available listings |
| Purchase juice | Buy GigaJuice for premium benefits |
| Start run | Enter a dungeon (juiced or regular) |
| Battle | Sword/Shield/Spell combat |
| Loot | Choose rewards after victories |
| Use items | Activate consumables |
| Flee/Cancel | Escape or abandon run |
| Check state | View current run progress |
BASE="https://gigaverse.io/api"
JWT=$(cat ~/.secrets/gigaverse-jwt.txt)
# 1) Check session
curl "$BASE/user/me" -H "Authorization: Bearer $JWT"
# 2) Check energy + dungeon costs
curl "$BASE/offchain/player/energy/0xYOUR_ADDRESS"
curl "$BASE/game/dungeon/today" -H "Authorization: Bearer $JWT"
# 3) Start run (token starts at 0)
curl -X POST "$BASE/game/dungeon/action" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"action":"start_run","dungeonId":1,"actionToken":0,"data":{"consumables":[],"isJuiced":false,"index":0}}'
# → save returned actionToken!
# 4) Combat move (use returned token)
curl -X POST "$BASE/game/dungeon/action" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{"action":"rock","dungeonId":1,"actionToken":LATEST_TOKEN,"data":{}}'
# 5) Check state anytime
curl "$BASE/game/dungeon/state" -H "Authorization: Bearer $JWT"
/game/dungeon/today)isJuiced: true for 3x rewards (requires juiced status)index selects tier for dungeons with entryData requirements/game/dungeon/state to resyncTrack loot across runs and alert on rare finds. See references/run-tracking.md for full details.
After each room, show boon choices:
Room 2 cleared! Choose loot:
1. ⚔️ Upgrade Sword (Uncommon)
2. 💚 Heal +8 HP (Common)
3. 🛡️ Upgrade Shield (Epic!)
Alert threshold: RARITY_CID >= 5
| Rarity | Level | Action |
|---|---|---|
| 1-4 | Common-Epic | Log normally |
| 5 | Legendary | 🔥 Notify user |
| 6 | Relic | 🌟 Notify user |
| 7 | Giga | 💎 Notify user |
Always show:
📊 RUN COMPLETE
━━━━━━━━━━━━━━━━━━━━━━
Result: ✅ Victory
Rooms: 4/4 | HP: 8/12
Boons:
- ⚔️ +2 Sword ATK (Epic)
- 💚 Heal +8
Items Collected:
- Dungeon Scrap x3
- Bolt x1
━━━━━━━━━━━━━━━━━━━━━━
Check inventory before and after runs to see item gains:
curl https://gigaverse.io/api/items/balances -H "Authorization: Bearer $JWT"
See references/items.md for item IDs and rarity lookup.
The Gigaverse awaits. Will you answer the call? ⚔️🎮