CROSS Rewards

Stake WCROSS, harvest reward tokens, and read pool state with one sentence. Single-pool multi-reward staker on CROSS Chain.


Stake WCROSS and harvest rewards with one sentence.

Drives the single-pool, multi-reward staker at 0xd9767038…7300 on CROSS Chain (612055). Deposit WCROSS (with optional native CROSS → WCROSS wrap), claim accrued rewards, read pool / user state.


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-rewards into a temporary directory and run the install.sh script inside it to install the cross-rewards skill into my environment. Tell me the result in one line when you're done.
🚧

Bash execution required.

Stake / harvest sign real on-chain transactions.

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). viem signing needs a local Node runtime.


3. What you can do

SubcommandWhat it does
🟢 infoPool detail + your view (deposit token, reward registry, totalDeposited, paused, owner).
🟢 poolsAlias for info (back-compat).
🟢 balancewallet WCROSS · native CROSS · staked · pending rewards (per token).
🔴 depositdeposit(amount) with optional --wrap to wrap native CROSS first.
🔴 withdraw`withdraw(amountall)all` reads on-chain balance.
🔴 harvestclaimRewards() (sweep all reward tokens) or harvest <token> for one.
📘

Not implemented (by design). No MasterChef-style harvest() shortcut (the contract has none). No multi-pool batching. No auto-compound. No web-UI scraping. No ERC-4337. No APR display (no on-chain accrual view). No operator paths.


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.

Show my rewards pool state
Show my cross staking balance
Deposit 1.5 WCROSS
Wrap native CROSS and deposit 2 WCROSS
Withdraw all from cross rewards
Harvest all rewards
Harvest only CWT

5. Command reference

commandargsauthmutationdescription
inforeadPool + user view.
poolsreadAlias for info.
balancePK (derived addr)readWallet + staked + pending.
deposit<amount> [--wrap] [--confirm]PKtxDeposit WCROSS; --wrap wraps native CROSS first.
withdraw<amount|all> [--confirm]PKtxWithdraw deposit token.
harvest[<rewardToken>] [--confirm]PKtxClaim all rewards or one.

Env: PRIVATE_KEY, MAX_STAKE_NOTIONAL, CONFIRM_THRESHOLD (default 1), MIN_GAS_CROSS (default 0.001), optional CROSS_RPC_URL, optional WALLET_ADDRESS.


6. Safety & credentials

🛑

This skill signs on-chain transactions.

RailWhat it does
Required credentialPRIVATE_KEY (EOA, 0x + 64 hex).
Chain-id checkEvery write tx aborts unless eth_chainId == 612055.
MAX_STAKE_NOTIONALPer-deposit cap. Aborts above.
CONFIRM_THRESHOLDDeposits / withdraws above this (default 1) require explicit --confirm.
MIN_GAS_CROSSNative CROSS floor (default 0.001). Aborts before signing if short.
minDepositAmount() guardReads the on-chain min and aborts if you ask for less.
One-time approveWCROSS → staker max-uint approve runs only if allowance is short.
💡

Hosted-agent tip. Use a disposable wallet. The skill never echoes PRIVATE_KEY back to the transcript.


7. Troubleshooting

below_min_deposit

The contract sets a minimum (currently 1 WCROSS). Increase the amount or check with "show cross-rewards pool info".

wrong_chain

eth_chainId is not 612055. Remove CROSS_RPC_URL override or set it back to https://mainnet.crosstoken.io:22001/.

I deposited but my pending rewards is still 0.

Rewards accrue over time via off-chain emission. Check back later or read info to see if the pool is paused.

withdraw(0) reverts.

The contract has no MasterChef-style "harvest by withdrawing zero". Use harvest instead — it calls claimRewards().

Withdraw all returned less than my staked balance.

The skill reads balances(addr) and withdraws that exact amount. If the on-chain balance dropped (e.g. you withdrew elsewhere), it withdraws the current value, not a cached one.


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