gigaverse

v1.0.0

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

0· 455·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description (Gigaverse gameplay) align with the included scripts and docs: wallet creation/import, SIWE-style auth, JWT usage, querying game APIs, and sending on‑chain transactions (minting, buying subscriptions). All required capabilities (private key access, network calls, transaction signing) are expected for a blockchain gaming agent.
Instruction Scope
SKILL.md instructs the agent to create/import a wallet, save keys to ~/.secrets, run setup/auth scripts, poll energy endpoints, and call game APIs. These instructions stay within the game's scope. Two attention points: (1) auth includes mandatory agent_metadata (type/model) sent to the game API which leaks model identification; (2) the skill instructs persistent storage of private keys/JWTs in the user's home directory — expected for this use case but sensitive and worth protecting.
Install Mechanism
There is no external install downloader; the package is instruction+scripts only and includes a package.json + lock for node dependencies (viem etc.). That is moderate-risk but expected: running the scripts will require Node/npm and installing viem from the public registry. No arbitrary remote archives or shorteners are used in the manifest.
!
Credentials
The registry metadata declares no required env vars, but scripts and docs reference several environment/config sources that are not declared: GIGAVERSE_AGENT_MODEL (optional), NOOB_PRIVATE_KEY (required by purchase-juice.ts), and GIGAVERSE_MODE overrides. Most scripts instead read/write files under ~/.secrets and ~/.config/gigaverse — which is coherent — but purchase-juice.ts mandates NOOB_PRIVATE_KEY (env) rather than reading the stored key file, creating a potential mismatch that could push users to expose a private key in their environment. Storing private keys/JWTs on disk is necessary for this skill but is highly sensitive and should only be done with a dedicated, low-value wallet.
Persistence & Privilege
Skill writes persistent state to standard user locations (~/.secrets for private key & JWT, ~/.config/gigaverse for config). always:false and it doesn't modify other skills or system-wide settings. Persistent storage of private keys and tokens is expected for a wallet agent but increases attack surface if the host is compromised.
What to consider before installing
This skill appears to be a legitimate Gigaverse game agent: it generates/imports a wallet, signs a message to get a JWT, polls the game API, and can send on‑chain transactions (minting, buying subscriptions). Before installing: - Use a dedicated bot wallet with minimal funds; never import a main or large-value key. The scripts store private keys in ~/.secrets — protect that directory (permissions) or keep it in an isolated environment. - Inspect the scripts locally before running. purchase-juice.ts requires NOOB_PRIVATE_KEY as an env var (not declared in registry metadata) — avoid exporting high-value private keys to env variables; prefer the setup wallet file method if you run these tools. - The skill sends agent_metadata (including model name) to the API during auth; if you care about model privacy, be aware this is transmitted. - Running scripts requires Node/npm and the viem library (from npm). Install dependencies from official registries and consider running in a sandbox/container. - If you want lower risk, run only read-only actions (energy checks, state queries) without authenticating or providing a private key. If you want me to, I can: point out the exact lines where private keys are read/written, suggest minimal changes to avoid env exposure, or produce a checklist to run the skill safely (sandbox steps, permission checks).

Like a lobster shell, security has layers — review code before you run it.

latestvk974dfmqw4452aw2ca4bvvk7cd81gcd7
455downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

Gigaverse

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

Installation

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 TermAPI ActionEffect
⚔️ SwordrockHigh ATK, no DEF — beats Spell
🛡️ ShieldpaperNo ATK, high DEF — beats Sword
SpellscissorBalanced 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

FileDescription
SKILL.md (this file)Main skill documentation
CONFIG.mdConfiguration options (modes, preferences)
HEARTBEAT.mdEnergy monitoring & notifications
references/onboarding.mdNew player setup flow
references/api.mdFull API reference
references/dungeons.mdDungeon types, room structure, actions
references/enemies.mdEnemy names, stats, HP/Shield
references/items.mdGame items, rarity levels, rare alerts
references/run-tracking.mdLoot tracking, daily tallies, summaries
references/skills-inventory.mdSkills, leveling, inventory APIs
references/leveling.mdLeveling guide, stat allocation by strategy
references/factions.mdFaction IDs, names, population stats
references/juice.mdGigaJuice benefits, API, notification logic
scripts/setup.shFull setup wizard (wallet + mode)
scripts/setup-wallet.shWallet generation/import only
scripts/auth.shAuthenticate 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

./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:

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

./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 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!

4. Complete Onboarding (New Players)

Before entering dungeons, you need:

  • ✅ A Noob character (minted onchain)
  • ✅ A username assigned
  • ✅ A faction selected

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 != null
  • username exists
  • FACTION_CID > 0

See references/onboarding.md for full onboarding flow including mint and faction selection.

5. Check Your Energy

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

6. Enter the Dungeon

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

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

ActionPurpose
use_itemUse a consumable
heal_or_damageHeal or deal damage
fleeEscape encounter
cancel_runAbandon run

Check Run State

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:

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 🧃

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

See references/juice.md for full documentation.

Benefits Summary

BenefitWithout JuiceWith Juice
Max Energy240420
🔄 Energy Regen10/hour17.5/hour
🎲 Upgrade Options3 choices4 choices (50% chance)
🧪 Potion Slots23
🏃 Daily Dungetron10 runs12 runs
🎣 Daily Fishing10 casts20 casts
💎 ROM ProductionBase+20% boost

Packages

PackageDurationPrice
JUICE BOX30 days0.01 ETH
JUICE CARTON90 days0.023 ETH
JUICE TANK180 days0.038 ETH

Check Juice Status

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:

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)


Leveling Between Runs ⬆️

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

Check XP & Level

# 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

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

StrategyPriority Stats
AggressiveSword ATK (0) > Spell ATK (4) > Shield ATK (2)
DefensiveMax HP (6) > Max Armor (7) > Shield DEF (3)
BalancedMax HP (6) > Sword ATK (0) > Shield DEF (3)
RandomAny (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 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:

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

# 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

FilePurpose
~/.secrets/gigaverse-private-key.txtYour wallet private key
~/.secrets/gigaverse-address.txtYour wallet address
~/.secrets/gigaverse-jwt.txtCurrent auth token

Everything You Can Do ⚔️

ActionWhat it does
Create walletGenerate or import a wallet
AuthenticateGet JWT for API access
Mint NoobCreate your character (onchain)
Set usernameReserve and assign your name
Choose factionJoin a faction
Check energySee if you can start a run
Check juice statusSee if you're juiced + available listings
Purchase juiceBuy GigaJuice for premium benefits
Start runEnter a dungeon (juiced or regular)
BattleSword/Shield/Spell combat
LootChoose rewards after victories
Use itemsActivate consumables
Flee/CancelEscape or abandon run
Check stateView current run progress

Minimal cURL Sequence

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

RarityLevelAction
1-4Common-EpicLog normally
5Legendary🔥 Notify user
6Relic🌟 Notify user
7Giga💎 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:

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? ⚔️🎮

Comments

Loading comments...