Skip to content

About

POKEISLAND Game API and TypeScript SDK: server-authoritative gacha, arena matchmaking, coin ledger, and replay-verified battles.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ pokeisland-gateway

The POKEISLAND Game API + TypeScript SDK

Server-authoritative gacha, arena, and coins. The client asks; the gateway decides.

API SDK Chain Token


What is pokeisland-gateway

The Game API for POKEISLAND and its official TypeScript SDK. The gateway is where every value that matters is decided or verified: gacha rolls run here with odds locked, the coin ledger lives here, arena matchmaking and rank math run here, and the replay verifier re-runs every submitted battle before touching a rank.

The client is untrusted by design. This repo is the trust boundary.

Why the gateway is authoritative

Operation Where it happens Why
Gacha roll Server Odds locked, logged to gacha_log; client cannot influence rarity
Battle result Re-run via replay verifier Forged transcripts are rejected (409)
Coin credit On-chain deposit listener Credited only on confirmed deposits
Rank change Server rank math Applied only after verification
Payout Isolated signer No API route can move pool funds arbitrarily

API

Full reference: ENDPOINTS.md.

Group Routes
Auth POST /auth/wallet
Gacha POST /gacha/open · GET /dex
Coins POST /coins/quote · POST /shop/buy
Arena GET /arena/opponents · POST /arena/attack · POST /arena/defense · GET /arena/ladder
Quests GET /quests · POST /quests/claim

SDK

The @pokeisland/sdk TypeScript client wraps the API with typed methods and session handling.

Quick Start

npm install @pokeisland/sdk
import { PokeIslandClient } from "@pokeisland/sdk";

const client = new PokeIslandClient({ baseUrl: "https://pokeisland.fun/api" });

// Guest play — no wallet required
await client.authGuest();

// Open a ball (server rolls, odds locked)
const pull = await client.gacha.open("ultra");
console.log(`Pulled ${pull.mon.name} (${pull.rarity}★)`);

// Check the live arena pool
const ladder = await client.arena.ladder();
console.log(`Pool: ${ladder.pool.toLocaleString()} $ISLAND — verify at ${ladder.poolWallet}`);

See examples/basic-usage.ts for a full flow.

Authentication

Anon-guest sessions cover collect + battle with no wallet. Wallet sessions (sign a nonce with POST /auth/wallet) unlock deposits, the shop, and the arena. All calls carry Authorization: Bearer <token>.

Reference Links

Resource URL
Play https://pokeisland.fun
API base https://pokeisland.fun/api
GitHub https://github.com/pokeislandfun
Telegram https://t.me/pokeisland

`$ISLAND` is a utility token for the POKEISLAND game. It is not an investment contract, security, or claim on revenue. In-game collectibles have no guaranteed monetary value and cannot be redeemed. POKEISLAND is a fan-built game using community data APIs and is not affiliated with any third-party IP holder. Nothing here is financial advice. Play responsibly.

About

POKEISLAND Game API and TypeScript SDK: server-authoritative gacha, arena matchmaking, coin ledger, and replay-verified battles.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages