dual-stacking

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Dual Stacking Skill

Dual Stacking 技能

Dual Stacking lets agents earn BTC-denominated yield (paid in sBTC) simply by holding sBTC — no lockup period required. Optionally, holding stacked STX alongside sBTC unlocks a multiplier of up to 10x on the APR.
  • check-status — Read-only. Returns enrollment state, APR range, minimum amount, and cycle overview.
  • get-rewards — Read-only. Returns earned rewards for a specific cycle.
  • enroll and opt-out — Write operations, require an unlocked wallet.
Contract:
SP1HFCRKEJ8BYW4D0E3FAWHFDX8A25PPAA83HWWZ9.dual-stacking-v2_0_4
APR:
  • sBTC only: ~0.5% APY in sBTC
  • sBTC + stacked STX: up to ~5% APY (10x multiplier)
Minimum enrollment: 10,000 sats sBTC (0.0001 sBTC)
Dual Stacking 允许用户仅通过持有 sBTC 即可赚取以 BTC 计价的收益(以 sBTC 发放)——无需锁仓期。此外,若同时持有已质押的 STX,还可解锁最高 10 倍的 APR 乘数。
  • check-status —— 只读操作。返回参与状态、APR 范围、最低参与金额及周期概览。
  • get-rewards —— 只读操作。返回特定周期的已赚取奖励。
  • enrollopt-out —— 写入操作,需要解锁钱包。
合约地址:
SP1HFCRKEJ8BYW4D0E3FAWHFDX8A25PPAA83HWWZ9.dual-stacking-v2_0_4
APR:
  • 仅持有 sBTC:以 sBTC 发放约 0.5% 的年化收益率
  • sBTC + 已质押 STX:最高约 5% 的年化收益率(10 倍乘数)
最低参与金额: 10,000 聪 sBTC(0.0001 sBTC)

Usage

使用方法

bun run dual-stacking/dual-stacking.ts <subcommand> [options]
bun run dual-stacking/dual-stacking.ts <subcommand> [options]

Subcommands

子命令

check-status

check-status

Check enrollment status, APR data, minimum enrollment amount, and current cycle overview for an address.
bun run dual-stacking/dual-stacking.ts check-status [--address <STX_ADDRESS>]
Options:
  • --address
    (optional) — Stacks address to check (uses active wallet if omitted)
Output:
json
{
  "address": "SP2...",
  "network": "mainnet",
  "enrolledThisCycle": true,
  "enrolledNextCycle": true,
  "minimumEnrollmentSats": 10000,
  "apr": {
    "minApr": 0.5,
    "maxApr": 5,
    "unit": "%",
    "note": "Multiplier up to 10x with stacked STX via PoX"
  },
  "cycleOverview": {
    "currentCycleId": 100,
    "snapshotIndex": 3,
    "snapshotsPerCycle": 144
  }
}
查询指定地址的参与状态、APR 数据、最低参与金额及当前周期概览。
bun run dual-stacking/dual-stacking.ts check-status [--address <STX_ADDRESS>]
选项:
  • --address
    (可选)—— 要查询的 Stacks 地址(若省略则使用当前活跃钱包)
输出:
json
{
  "address": "SP2...",
  "network": "mainnet",
  "enrolledThisCycle": true,
  "enrolledNextCycle": true,
  "minimumEnrollmentSats": 10000,
  "apr": {
    "minApr": 0.5,
    "maxApr": 5,
    "unit": "%",
    "note": "Multiplier up to 10x with stacked STX via PoX"
  },
  "cycleOverview": {
    "currentCycleId": 100,
    "snapshotIndex": 3,
    "snapshotsPerCycle": 144
  }
}

enroll

enroll

Enroll in Dual Stacking. The caller's sBTC balance is used to determine rewards. Optionally, a different address can receive the rewards.
bun run dual-stacking/dual-stacking.ts enroll [--reward-address <STX_ADDRESS>]
Options:
  • --reward-address
    (optional) — Stacks address to receive rewards (defaults to caller's address)
Output:
json
{
  "success": true,
  "txid": "abc123...",
  "enrolledAddress": "SP2...",
  "rewardAddress": "SP2...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
参与 Dual Stacking。调用者的 sBTC 余额将用于计算奖励。可指定其他地址接收奖励。
bun run dual-stacking/dual-stacking.ts enroll [--reward-address <STX_ADDRESS>]
选项:
  • --reward-address
    (可选)—— 接收奖励的 Stacks 地址(默认使用调用者地址)
输出:
json
{
  "success": true,
  "txid": "abc123...",
  "enrolledAddress": "SP2...",
  "rewardAddress": "SP2...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}

opt-out

opt-out

Opt out of Dual Stacking. Takes effect from the next cycle.
bun run dual-stacking/dual-stacking.ts opt-out
Output:
json
{
  "success": true,
  "txid": "abc123...",
  "address": "SP2...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
退出 Dual Stacking。将从下一周期开始生效。
bun run dual-stacking/dual-stacking.ts opt-out
输出:
json
{
  "success": true,
  "txid": "abc123...",
  "address": "SP2...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}

get-rewards

get-rewards

Get earned rewards for a specific cycle and address.
bun run dual-stacking/dual-stacking.ts get-rewards --cycle <N> [--address <STX_ADDRESS>] [--rollback <N>]
Options:
  • --cycle
    (required) — Cycle number to query
  • --address
    (optional) — Stacks address to check (uses active wallet if omitted)
  • --rollback
    (optional) — Rollback offset (default: 0)
Output:
json
{
  "address": "SP2...",
  "cycle": 99,
  "rollback": 0,
  "rewardSats": 500,
  "rewardBtc": "0.000005",
  "network": "mainnet"
}
查询指定地址在特定周期的已赚取奖励。
bun run dual-stacking/dual-stacking.ts get-rewards --cycle <N> [--address <STX_ADDRESS>] [--rollback <N>]
选项:
  • --cycle
    (必填)—— 要查询的周期编号
  • --address
    (可选)—— 要查询的 Stacks 地址(若省略则使用当前活跃钱包)
  • --rollback
    (可选)—— 回滚偏移量(默认值:0)
输出:
json
{
  "address": "SP2...",
  "cycle": 99,
  "rollback": 0,
  "rewardSats": 500,
  "rewardBtc": "0.000005",
  "network": "mainnet"
}

Notes

注意事项

  • Enrollment is per-cycle. If you enroll mid-cycle, rewards start from the next cycle.
  • The reward multiplier is determined automatically based on how much STX you have stacked via PoX.
  • Use the
    stacking
    skill to stack STX and boost your Dual Stacking APR up to 5% APY.
  • Wallet operations require an unlocked wallet (use
    bun run wallet/wallet.ts unlock
    first, or set
    CLIENT_MNEMONIC
    env var).
  • 参与以周期为单位。若在周期中途参与,奖励将从下一周期开始计算。
  • 奖励乘数会根据你通过 PoX 质押的 STX 数量自动确定。
  • 使用
    stacking
    技能质押 STX,可将 Dual Stacking 的 APR 提升至最高 5% 年化收益率。
  • 钱包操作需要解锁钱包(先使用
    bun run wallet/wallet.ts unlock
    ,或设置
    CLIENT_MNEMONIC
    环境变量)。