CROSS Stake

Stake native CROSS on Mainnet 2.0 with one sentence. View position, stake, unstake (14-day cooldown), withdraw matured principal.


Stake native CROSS with one sentence.

Drives the CROSS Mainnet 2.0 native-CROSS staking dApp (operated by OGF (BVI) Ltd.) on CROSS Chain (612055). View protocol stats, your full position (currently staked / in cooldown / withdrawable), stake / unstake / withdraw matured principal.

❗️

Different from cross-rewards.

cross-rewards stakes WCROSS / game ERC-20s into per-pool reward staker contracts. cross-stake (this skill) bonds native CROSS to the StakeHub system contract. Different assets, different contracts.

📘

Single-pool model. CROSS Mainnet 2.0 has no per-validator delegation surface. The dApp's "Choose validator" UI is cosmetic / off-chain. All on-chain stake calls land in a single contract.


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

Bash execution required + Phase-0 capture pending.

Read-path works for any wallet once references/cross-stake.json is populated via the playbook in references/cross-stake.md. Write-path exits with phase_0_not_captured until the registry is filled. Use a throwaway wallet for the capture.

📘

CROSSx Embedded Wallet caveat. stake.ogfcorp.com defaults to a custodial CROSSx wallet. To use the write-path you must export your private key from CROSSx (or import an external wallet into CROSSx). Read-path subcommands work for any address without auth.

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). Staking signs on-chain txs with viem.


3. What you can do

Read · no auth

SubcommandWhat it does
🟢 network-statsTotal staked / APR / block reward / emissions.
🟢 validatorsSingle-pool redirect / guidance.
🟢 my-delegationFull position: staked + cooldown + withdrawable + matures-at.
🟢 rewardsRewards (pending + claimed-to-date).
🟢 historyEvent log: delegate / undelegate / claim-rewards.

Write · signs on-chain tx

SubcommandWhat it does
🔴 delegatestake() payable — stake native CROSS.
🔴 undelegateStart the 14-day cooldown. Envelope returns withdrawAvailableAt.
🔴 withdrawclaimUnstake() — claim matured principal.
🔴 claim-rewardsCurrently exits not_supported_by_protocol (dormant).

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 CROSS Mainnet 2.0 staking stats
Show my cross-stake position (use 0x...)
Stake 100 CROSS — confirmed
Unstake 5 CROSS (start the 14-day cooldown)
Withdraw my matured CROSS
Show my staking event history
Show staking rewards

5. Command reference

commandargsauthmutationdescription
network-statsreadTotal staked / APR / emissions.
validatorsreadSingle-pool redirect.
my-delegation--addr 0x...readPosition summary.
rewards--addr 0x...readPending + claimed-to-date.
history--addr 0x... [--limit 100]readEvent log.
delegate<amount> [--confirm]PKtxstake() payable.
undelegate<amount> [--confirm]PKtxStart cooldown.
withdraw[--confirm]PKtxclaimUnstake().
claim-rewards[--confirm]PKtxCurrently not_supported_by_protocol.

Tip. my-delegation is the most useful read subcommand — it tells you exactly what's staked, what's in cooldown, and when each cooldown matures. Run it after every stake / unstake.


6. Safety & credentials

🛑

delegate / undelegate / withdraw sign on-chain transactions.

RailWhat it does
Required credentialPRIVATE_KEY (EOA) for write-path. Read-path needs nothing.
Chain-id checkMust be 612055 (CROSS Chain). Mismatch → wrong_chain.
RPC schemehttps:// only. http://insecure_rpc.
MAX_STAKE_NOTIONALDefault 1000 CROSS, applies to delegate only.
CONFIRM_THRESHOLDAmounts ≥ this (default 10) require explicit --confirm.
MIN_GAS_NATIVE_CROSSDefault 0.001. Reserved on top of any value-bearing tx.
Phase-0 not capturedWrite-path exits 3 phase_0_not_captured with missingSlots[] until you fill references/cross-stake.json.
Wallet identity warningWALLET_ADDRESS ≠ PK-derived → soft signerWarn field; does not abort.
💡

Hosted-agent tip. Use a disposable wallet. For the Phase-0 capture, use a throwaway wallet specifically — never your hot wallet — since you'll be running tx calldata captures against the live site.


7. Troubleshooting

phase_0_not_captured

The skill ships with references/cross-stake.json seeded entirely with nulls. Open references/cross-stake.md and follow the DevTools network-capture playbook against stake.ogfcorp.com. Use a throwaway wallet.

I unstaked but the funds aren't withdrawable.

Native CROSS staking has a 14-day unbonding cooldown. Check my-delegationwithdrawAvailableAt shows the maturity timestamp.

not_supported_by_protocol on claim-rewards.

CROSS Mainnet 2.0 hasn't activated the separate reward-claim endpoint yet — rewards are bundled into delegate / undelegate flows for now. The skill stub stays in place for the day it activates.

Choose validator UI shows me 5 options. Which one does the skill use?

None. The UI is cosmetic — all on-chain stake calls land in a single contract. The skill correctly ignores validator selection.

I exported my key from CROSSx but the tx fails with insecure_rpc.

You set CROSS_RPC_URL=http://.... Change to https://mainnet.crosstoken.io:22001/ (or remove the override).


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