CROSS WAVE

Submit Shorts / TikTok videos to CROSS WAVE missions for $CROSS rewards. Read missions and campaigns anonymously; auth via pasted JWT for submit and referral.


Browse missions and submit your videos with one sentence.

Drives CROSS WAVE — the NEXUS Open Streamer Economy that pays $CROSS (and per-game coupons) for completing video missions. Anonymous read; auth via pasted JWT for submit / referral / whoami.


1. Install

The block below is a natural-language prompt to paste into your AI agent — not a terminal command.

Clone https://github.com/to-nexus/skill-cross-wave into a temporary directory and run the install.sh script inside it to install the cross-wave skill into my environment. Tell me the result in one line when you're done.
🚧

Bash execution required.

Read-path works fully anonymous. Auth-path needs a one-time browser step (see §6).

Install all CROSS skills at once

Clone https://github.com/to-nexus/cross-skills-suite into a temporary directory and run the bootstrap.sh script inside it to install every CROSS skill into my environment. Tell me which skills succeeded and which failed.

2. Where it runs

✅ Supported · CLI agents with Bash access

Claude Code (CLI) · OpenClaw · Cursor Composer · Codex CLI · Aider · Goose · Gemini CLI · OpenInterpreter · any other Bash-capable CLI.

❌ Not supported · Browser / hosted only

Claude.ai (web) · ChatGPT (web) · Gemini (web) · Copilot Chat (web). The skill needs filesystem access to persist your JWT at ~/.claude/skills/cross-wave/.sessions/wave.json mode 0600.


3. What you can do

Read · no auth

SubcommandWhat it does
🟢 infoService metadata + capture status + login status.
🟢 missionsFlat or grouped mission list / single detail.
🟢 campaignsMission groups view.

Auth · paste-the-token

SubcommandWhat it does
🟣 loginVerify a pasted JWT via /users/me and persist.
🟣 whoamiYour wallet address, accrued CROSS, submitted missions.
🟣 referralYour referral link + 5% commission stats.
🟣 submitSubmit a Shorts / TikTok URL to a mission.

claim is a no_op by design — CROSS WAVE has no user-initiated claim. Operator review approves submissions, then rewards auto-distribute at each mission's rewardScheduledAt.


4. Try it

💬

Any natural language works. Examples below are in English; phrase your intent in whichever language you prefer — the agent forwards your intent, not the wording.

List CROSS WAVE active campaigns
Show 5 ended missions
Open mission 21
Show campaign 5 detail
Save my WAVE access token (I have the JWT from DevTools)
Get my referral link
Submit my Shorts to mission 21: https://www.youtube.com/shorts/XXXX
Show my wave profile

5. Command reference

commandargsauthmutationdescription
inforeadService + registry + login status.
missions[<id>] [--status A|E|C] [--ended] [--grouped] [--page N --size N]readFlat or grouped mission list / detail.
campaigns[<id>] [--status ACTIVE|ENDED] [--page N --size N]readMission groups view.
login--token <jwt>pasteoff-chain writeVerify + persist JWT.
whoamiJWTreadGET /users/me.
referralJWTreadGET /referrals/me.
submit<missionId> --url <URL>JWToff-chain writePOST /missions/{id}/participate.
claimno-opCROSS WAVE has no claim endpoint.

6. Safety & credentials

🟣

This skill needs a pasted JWT for auth-path subcommands. No wallet signing involved.

RailWhat it does
Required credentialA JWT access_token captured from wave.crosstoken.io DevTools (Network → any authenticated request → copy Authorization: Bearer …).
Why paste-the-tokenCROSS WAVE login is CROSSx-wallet OAuth at cross-auth.crosstoken.io. It uses cross-device WebAuthn passkeys (phone-based 2FA) which crashes Playwright-bundled Chromium on macOS. Headless OAuth is fragile in general.
Token storagePersisted at ~/.claude/skills/cross-wave/.sessions/wave.json mode 0600. One-shot alternative: CROSS_WAVE_ACCESS_TOKEN=<jwt> env var.
Token expiryJWTs last 1–24 h. When auth-required calls return unauthorized, repeat the capture.
Submit URL allow-listsubmit --url <U> aborts unless host is in youtube.com,youtu.be,tiktok.com,vt.tiktok.com. HTTPS-only.
Already-submitted guardsubmit aborts cleanly if you've already participated in that mission.

7. Troubleshooting

How do I capture the JWT?
  1. Open https://wave.crosstoken.io and log in normally.
  2. Open DevTools → Network tab.
  3. Click any request that goes to wave-client-api.crosstoken.io (refresh the page if there are none).
  4. Find the Authorization: Bearer … request header.
  5. Copy the value after Bearer . Paste it: "save my WAVE token: eyJhbGciOiJ...".
bad_url on submit.

The host isn't in the allow-list. Currently allowed: youtube.com, youtu.be, tiktok.com, vt.tiktok.com. Set CROSS_WAVE_SUBMIT_HOSTS to extend it.

already_submitted

You've already participated in this mission. Each mission accepts one submission per wallet.

unauthorized when I had a valid token a few hours ago.

The JWT expired (1–24 h lifetime). Capture a fresh one and re-save.

Where do I claim my rewards?

You don't. CROSS WAVE auto-distributes rewards at each mission's rewardScheduledAt after operator review. The claim subcommand is a no-op.


© 2025 NEXUS Co., Ltd. All Rights Reserved.