---
updatedAt: 2026-08-07T01:39:07.000Z
agentTools:
  projectIndex: https://docs.onechain.nexus/llms.txt
---

# ONE Stake

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

<br />

<Callout icon="✨" theme="default">
  ### **Stake native CROSS with one sentence.**

  Drives the [ONE Mainnet 2.0 native-CROSS staking dApp](https://stake.ogfcorp.com/) (operated by OGF (BVI) Ltd.) on ONE Chain (`612055`). View protocol stats, your full position (currently staked / in cooldown / withdrawable), stake / unstake / withdraw matured principal.
</Callout>

<Callout icon="❗️" theme="error">
  ### **Different from [cross-rewards](https://docs.onechain.nexus/docs/skill-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.
</Callout>

<Callout icon="📘" theme="info">
  ### **Single-pool model.** ONE 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.
</Callout>

***

## 1. Install

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

```text Paste-into-agent prompt
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.
```

<Callout icon="🚧" theme="warn">
  ### **Bash execution required + Phase-0 capture pending.**

  Read-path works for any wallet **once&#x20;**`references/cross-stake.json`**&#x20;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.
</Callout>

<Callout icon="📘" theme="info">
  ### **ONEx Embedded Wallet caveat.** `stake.ogfcorp.com` defaults to a custodial ONEx wallet. To use the write-path you must export your private key from ONEx (or import an external wallet into ONEx). Read-path subcommands work for any address without auth.
</Callout>

### Install all ONE skills at once

```text Paste-into-agent prompt
Clone https://github.com/to-nexus/cross-skills-suite into a temporary directory and run the bootstrap.sh script inside it to install every ONE 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

| Subcommand         | What it does                                                  |
| ------------------ | ------------------------------------------------------------- |
| 🟢 `network-stats` | Total staked / APR / block reward / emissions.                |
| 🟢 `validators`    | Single-pool redirect / guidance.                              |
| 🟢 `my-delegation` | Full position: staked + cooldown + withdrawable + matures-at. |
| 🟢 `rewards`       | Rewards (pending + claimed-to-date).                          |
| 🟢 `history`       | Event log: delegate / undelegate / claim-rewards.             |

### Write · signs on-chain tx

| Subcommand         | What it does                                                       |
| ------------------ | ------------------------------------------------------------------ |
| 🔴 `delegate`      | `stake()` payable — stake native CROSS.                            |
| 🔴 `undelegate`    | Start the 14-day cooldown. Envelope returns `withdrawAvailableAt`. |
| 🔴 `withdraw`      | `claimUnstake()` — claim matured principal.                        |
| 🔴 `claim-rewards` | Currently exits `not_supported_by_protocol` (dormant).             |

***

## 4. Try it

<Callout icon="💬" theme="default">
  ### **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.
</Callout>

```text Example prompts
Show ONE 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

| command         | args                         | auth | mutation | description                            |
| --------------- | ---------------------------- | ---- | -------- | -------------------------------------- |
| `network-stats` | —                            | —    | read     | Total staked / APR / emissions.        |
| `validators`    | —                            | —    | read     | Single-pool redirect.                  |
| `my-delegation` | `--addr 0x...`               | —    | read     | Position summary.                      |
| `rewards`       | `--addr 0x...`               | —    | read     | Pending + claimed-to-date.             |
| `history`       | `--addr 0x... [--limit 100]` | —    | read     | Event log.                             |
| `delegate`      | `<amount> [--confirm]`       | PK   | tx       | `stake()` payable.                     |
| `undelegate`    | `<amount> [--confirm]`       | PK   | tx       | Start cooldown.                        |
| `withdraw`      | `[--confirm]`                | PK   | tx       | `claimUnstake()`.                      |
| `claim-rewards` | `[--confirm]`                | PK   | tx       | Currently `not_supported_by_protocol`. |

<Callout icon="✅" theme="okay">
  ### **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.
</Callout>

***

## 6. Safety & credentials

<Callout icon="🛑" theme="error">
  ### `delegate`**&#x20;/&#x20;**`undelegate`**&#x20;/&#x20;**`withdraw`**&#x20;sign on-chain transactions.**
</Callout>

| Rail                        | What it does                                                                                                  |
| --------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Required credential**     | `PRIVATE_KEY` (EOA) for write-path. Read-path needs nothing.                                                  |
| **Chain-id check**          | Must be `612055` (ONE Chain). Mismatch → `wrong_chain`.                                                       |
| **RPC scheme**              | `https://` only. `http://` → `insecure_rpc`.                                                                  |
| `MAX_STAKE_NOTIONAL`        | Default `1000` CROSS, applies to `delegate` only.                                                             |
| `CONFIRM_THRESHOLD`         | Amounts ≥ this (default `10`) require explicit `--confirm`.                                                   |
| `MIN_GAS_NATIVE_CROSS`      | Default `0.001`. Reserved on top of any value-bearing tx.                                                     |
| **Phase-0 not captured**    | Write-path exits `3 phase_0_not_captured` with `missingSlots[]` until you fill `references/cross-stake.json`. |
| **Wallet identity warning** | `WALLET_ADDRESS` ≠ PK-derived → soft `signerWarn` field; does not abort.                                      |

<Callout icon="💡" theme="default">
  ### **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.
</Callout>

***

## 7. Troubleshooting

<Accordion title="phase_0_not_captured" icon="fa-info-circle">
  The skill ships with `references/cross-stake.json` seeded entirely with `null`s. Open `references/cross-stake.md` and follow the DevTools network-capture playbook against `stake.ogfcorp.com`. Use a **throwaway wallet**.
</Accordion>

<Accordion title="I unstaked but the funds aren't withdrawable." icon="fa-info-circle">
  Native CROSS staking has a **14-day unbonding cooldown**. Check `my-delegation` — `withdrawAvailableAt` shows the maturity timestamp.
</Accordion>

<Accordion title="not_supported_by_protocol on claim-rewards." icon="fa-info-circle">
  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.
</Accordion>

<Accordion title="Choose validator UI shows me 5 options. Which one does the skill use?" icon="fa-info-circle">
  None. The UI is cosmetic — all on-chain stake calls land in a single contract. The skill correctly ignores validator selection.
</Accordion>

<Accordion title="I exported my key from ONEx but the tx fails with insecure_rpc." icon="fa-info-circle">
  You set `CROSS_RPC_URL=http://...`. Change to `https://mainnet.crosstoken.io:22001/` (or remove the override).
</Accordion>