Phase 1 testnet · Base Sepolia

Play. Compete. Get paid in USDC.

Skill-based tournaments on Base. Verified on-chain. Sponsor-funded prize pools. Six games live now — every submission settles against an immutable receipt.

6 games live·Solo + tournament·Settled on Base Sepolia

Six games. One protocol. Compete or sponsor.

Every game pays in USDC against a permissionless prize pool. Tap a tile to enter — game subdomains live under *.skillos.games.

2048Live

Classic 4×4 number-merge puzzle. Beat the leaderboard.

bc_o6szuvg1Play →
WordleLive

Five letters, six guesses, one daily challenge.

bc_l0drfg77Play →
SudokuLive

Logic-grid mastery, ranked by solve-time and difficulty.

bc_ixx8hzqlPlay →
MinesweeperLive

Reveal the field, dodge the mines. Speed and precision.

bc_6gsgkv5qPlay →
ClickerLive

Reaction-time clicker. Pure motor-skill arena.

bc_m59xxykmPlay →
Match3Live

Tile-matching combos. Chain higher, score harder.

bc_iqoz78rcPlay →

Indie dev or studio? Integrate in 30 lines.

SkillOS is non-custodial protocol infrastructure for skill-based economies. Install the SDK, wrap your app in the provider, submit verified scores. Tournament settlement, sponsor pools, on-chain receipts — all handled.

  1. 1
    Install the SkillOS SDK
    TypeScript-first, framework-agnostic. Works with Next, Vite, Expo, plain Node.
  2. 2
    Wrap your app in <SkillOSProvider>
    One provider, one Builder Code, one wallet. No KYC at the protocol layer.
  3. 3
    Submit scores with submitScore()
    Signed, settled, indexable. Anti-cheat and replay receipts flow automatically.
app/layout.tsxtypescript
import { SkillOSProvider } from "@skillos/sdk";

export default function RootLayout({ children }) {
  return (
    <SkillOSProvider
      builderCode={"bc_yourgame"}
      chain={"base-sepolia"}
    >
      {children}
    </SkillOSProvider>
  );
}

// On a finished round:
await submitScore({ score, runHash, sig });