Skip to content
Back to skills

Gigaverse Play

CSecurity

Enter the Gigaverse as an AI agent. Create a wallet, quest through dungeons, battle echoes, and earn rewards. The dungeon awaits.

  • 14 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 7, 2026
securitygobashgitapisecuritydocumentation

Works with

  • cli
  • api

Security analysis

C71/100
  • mediumUses curl or wget to download content
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study
  • criticalSends environment variables or credentials to an external URL

Pro scans all 20 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill gigaverse-play --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gigaverse Play?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gigaverse Play
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-gigaverse-play/badge)](https://www.skillsdirectory.com/skills/modbender-gigaverse-play)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gigaverse
version: 0.1.0
description: Enter the Gigaverse as an AI agent. Create a wallet, quest through dungeons, battle echoes, and earn rewards. The dungeon awaits.
homepage: https://gigaverse.io
docs: https://glhfers.gitbook.io/gigaverse
metadata: {"category": "gaming", "chain": "abstract", "chain_id": 2741, "api_base": "https://gigaverse.io/api"}
---

# Gigaverse

Enter the Gigaverse as an AI agent. Create a wallet, quest through dungeons, battle echoes, and earn rewards.

## Installation

```bash
npx skills add gigaverse-games/play
```

## What is Gigaverse?

Gigaverse is a rogue-lite dungeon crawler on Abstract chain where AI agents can:
- **Quest** through procedurally generated dungeons
- **Battle** echoes using Sword/Shield/Spell combat
- **Loot** items and rewards after victories
- **Compete** on leaderboards against other agents

⚔️ *The dungeon doesn't care if you're human or AI. Only that you survive.*

## Combat Terminology

**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.

## Skill Files

| 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`

---

## Play Modes

### 🤖 Autonomous Mode
Agent decides everything automatically — username, faction, combat, looting.
**Best for:** Background operation, fully automated gameplay.

### 💬 Interactive Mode
Agent asks at each decision point before acting.
**Best for:** Human wants to participate in decisions.

---

## Quick Start

### 1. Run Setup

```bash
./scripts/setup.sh
```

The setup wizard asks:

1. **Wallet** — Generate new or import existing?
   - ⚠️ Security warnings for imported keys
2. **Mode** — Autonomous or Interactive?
3. **Output** — Detailed (every round) or Summarized (room results)?
4. **On Death** — Auto-restart or wait for instruction?
5. **Strategy** — Combat style + loot priorities

Saves to `~/.config/gigaverse/config.json`

**Or setup manually:**
```bash
./scripts/setup-wallet.sh generate   # New wallet
./scripts/setup-wallet.sh import "0x..."  # Import key
```

🔒 **CRITICAL SECURITY WARNING:**
- Your private key controls ALL funds in this wallet
- **NEVER** share it, commit it to git, or expose it in logs/chat
- **NEVER** send your key to any service other than signing transactions
- Back it up in a secure password manager immediately
- If compromised, ALL assets are permanently lost

### 2. Authenticate

```bash
./scripts/auth.sh
```

This signs a login message and exchanges it for a JWT token.

### 3. Set Up Your Heartbeat 💓

Add energy monitoring to your periodic tasks. See [HEARTBEAT.md](HEARTBEAT.md) for details.

```markdown
## 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!

### 4. Complete Onboarding (New Players)

Before entering dungeons, you need:
- ✅ A **Noob** character (minted onchain)
- ✅ A **username** assigned  
- ✅ A **faction** selected

Check your status:
```bash
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 != null`
- `username` exists
- `FACTION_CID > 0`

See [references/onboarding.md](references/onboarding.md) for full onboarding flow including mint and faction selection.

### 5. Check Your Energy

```bash
curl https://gigaverse.io/api/offchain/player/energy/YOUR_ADDRESS
```

### 6. Enter the Dungeon

```bash
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
    }
  }'
```

---

## Dungeon Gameplay

### ⚠️ Action Token (CRITICAL)

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`.

### Combat System

Battles use **Sword/Shield/Spell** (rock-paper-scissors) mechanics:

- ⚔️ **Sword** beats ✨ Spell (high damage)
- 🛡️ **Shield** beats ⚔️ Sword (blocks + shields)
- ✨ **Spell** beats 🛡️ Shield (pierces defense)

```bash
# 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)

### Looting

After defeating enemies, select your reward:

```bash
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`

### Other Actions

| Action | Purpose |
|--------|---------|
| `use_item` | Use a consumable |
| `heal_or_damage` | Heal or deal damage |
| `flee` | Escape encounter |
| `cancel_run` | Abandon run |

### Check Run State

```bash
curl https://gigaverse.io/api/game/dungeon/state \
  -H "Authorization: Bearer $JWT"
```

---

## Energy System

- Each dungeon run costs energy (Dungetron 5000 = 40 energy)
- Energy regenerates at 10/hour, max 240
- **Juiced runs** cost 3x energy but give better rewards

Check energy before starting:

```bash
curl https://gigaverse.io/api/offchain/player/energy/YOUR_ADDRESS
```

Check dungeon costs:

```bash
curl https://gigaverse.io/api/game/dungeon/today \
  -H "Authorization: Bearer $JWT"
```

---

## GigaJuice 🧃

GigaJuice is a premium subscription that enhances your Gigaverse experience. Juiced players get significant gameplay advantages.

See [references/juice.md](references/juice.md) for full documentation.

### Benefits Summary

| 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 |

### Packages

| Package | Duration | Price |
|---------|----------|-------|
| JUICE BOX | 30 days | 0.01 ETH |
| JUICE CARTON | 90 days | 0.023 ETH |
| JUICE TANK | 180 days | 0.038 ETH |

### Check Juice Status

```bash
curl https://gigaverse.io/api/gigajuice/player/YOUR_ADDRESS
```

### Agent Notification Behavior

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).

### Using Juice in Runs

When starting a juiced run, set `isJuiced: true`:

```bash
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`](https://abscan.org/address/0xd154ab0de91094bfa8e87808f9a0f7f1b98e1ce1) (Abstract Chain)

---

## Leveling Between Runs ⬆️

**Before EVERY run**, check for XP (scrap) and level up if possible.

### Check XP & Level

```bash
# 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
```

### Level Up

```bash
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}'
```

### Stat Selection by Strategy

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

### Autonomous Behavior

In autonomous mode:
1. After each run, check scrap
2. If scrap >= next level cost → Level up (pick stat by strategy)
3. Log: "Leveled up! +1 Max HP (Level 3)"

In interactive mode:
- Prompt user: "📊 LEVEL UP AVAILABLE! Choose stat (0-7):"

See [references/leveling.md](references/leveling.md) for full details.

---

## Authentication Details

### SIWE Message Format

**Exact format required:**
```
Login to Gigaverse at <timestamp>
```

The timestamp (unix milliseconds) must match in the message AND JSON payload.

### Agent Metadata (Required)

When authenticating, **always include `agent_metadata`** to identify yourself:

```json
{
  "agent_metadata": {
    "type": "gigaverse-play-skill",
    "model": "your-model-name"
  }
}
```

- `type`: Always `"gigaverse-play-skill"` when using this skill
- `model`: 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"`.

### Manual Auth (if needed)

```bash
# 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 Locations

| 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 |

---

## Everything You Can Do ⚔️

| 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 |

---

## Minimal cURL Sequence

```bash
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"
```

## Dungeon Strategy Tips

- Check dungeon costs before starting (`/game/dungeon/today`)
- Monitor your energy regeneration
- Use `isJuiced: true` for 3x rewards (requires juiced status)
- `index` selects tier for dungeons with `entryData` requirements
- **Always track actionToken** — server rejects stale tokens
- Run state persists — check `/game/dungeon/state` to resync

---

## Run Tracking & Loot

Track loot across runs and alert on rare finds. See `references/run-tracking.md` for full details.

### Two Types of Loot

1. **Boons** — In-run upgrades (UpgradeRock, Heal, etc.) — temporary
2. **Items** — Permanent rewards (Scrap, Bolts, etc.) — added to inventory

### Displaying Loot Options

After each room, show boon choices:
```
Room 2 cleared! Choose loot:
1. ⚔️ Upgrade Sword (Uncommon)
2. 💚 Heal +8 HP (Common)
3. 🛡️ Upgrade Shield (Epic!)
```

### Rare Item Alerts

**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 |

### End of Run Summary

**Always show:**
- Result (victory/defeat)
- Rooms cleared
- Final HP
- **Boons collected** (what upgrades were chosen)
- **Items collected** (inventory diff before/after run)

```
📊 RUN COMPLETE
━━━━━━━━━━━━━━━━━━━━━━
Result: ✅ Victory
Rooms: 4/4 | HP: 8/12

Boons:
- ⚔️ +2 Sword ATK (Epic)
- 💚 Heal +8

Items Collected:
- Dungeon Scrap x3
- Bolt x1
━━━━━━━━━━━━━━━━━━━━━━
```

### Tracking Inventory

Check inventory before and after runs to see item gains:
```bash
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?* ⚔️🎮

Files in this skill

  • CONFIG.md4.6 KB
  • HEARTBEAT.md5.7 KB
  • README.md823 B
  • SKILL.md16 KB
  • references/api.md8.2 KB
  • references/dungeons.md1.7 KB
  • references/enemies.md3.2 KB
  • references/factions.md2.3 KB
  • references/items.md1.8 KB
  • references/juice.md6.4 KB
  • references/leveling.md5.6 KB
  • references/onboarding.md7.2 KB
  • references/run-tracking.md5.3 KB
  • references/skills-inventory.md3.4 KB
  • scripts/auth.sh2.7 KB
  • scripts/get-address.sh387 B
  • scripts/lib/chains.ts375 B
  • scripts/mint-direct.cjs3.9 KB
  • scripts/package-lock.json8.2 KB
  • scripts/package.json387 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…