360 Secure SkillHub
360 安全技能中心

openmath-claim-reward

通过本地 python3 脚本与 shentud 查询 OpenMath 在 Shentu 主网上可领取的 imported_rewards 与 proof_rewards;在用户确认密钥名、地址与 RPC 节点后,使用本地 OS keyring 签名广播提现交易,随后等待区块并复查交易状态与奖励余额。支持地址与配置路径的自动发现,未设置时使用内置主网参数。

bennyzhe
bennyzhe
热度 58.29
最近更新 2026-05-11 17:33:46
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:工作流 / 财务

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add openmath-claim-reward
Metadata
name
openmath-claim-reward
description
Claims earned rewards from the OpenMath platform. Use when the user wants to query claimable imported/proof rewards or withdraw verified Shentu rewards after a proof has passed verification.
version
v1.0.4
requirements
{"commands":["python3","shentud"],"environment_variables":["OPENMATH_ENV_CONFIG","SHENTU_CHAIN_ID","SHENTU_NODE_URL"]}
side_effects
["Reads shared openmath-env.json from --config, OPENMATH_ENV_CONFIG, or the standard project/user config locations","Queries a remote Shentu RPC endpoint; defaults to https://rpc.shentu.org:443 unless SHENTU_NODE_URL or --node overrides it","Reward withdrawal commands use the local OS keyring through shentud --keyring-backend os"]

OpenMath Claim Reward

Instructions

Query and withdraw rewards for verified OpenMath activity on Shentu. Flow: query bounty rewards → withdraw via bounty withdraw-rewards → wait 5–10 s → re-query. Uses SHENTU_CHAIN_ID and SHENTU_NODE_URL for runtime chain/RPC settings, with built-in mainnet defaults if unset. Shared config resolution order: --config <path> → OPENMATH_ENV_CONFIG → ./.openmath-skills/openmath-env.json → ~/.openmath-skills/openmath-env.json. If OPENMATH_ENV_CONFIG is set, treat it as the selected config path. If that file is missing or invalid, stop and fix it instead of silently falling back.

Requires trusted local python3 and shentud binaries on PATH. Read-only reward queries shell out to local shentud and query a Shentu RPC endpoint. Withdrawals additionally rely on the local OS keyring via shentud --keyring-backend os. Before any withdrawal, confirm the key name, resolved address, and node URL with the user.

First-run gate

If the user already provided an address explicitly, reward query can run immediately.

If no address was provided, auto-discover prover_address from OPENMATH_ENV_CONFIG when it is set; otherwise check only ./.openmath-skills/openmath-env.json or ~/.openmath-skills/openmath-env.json. If no usable config exists, or if the config exists but prover_address is missing, do not guess the address. Follow references/init-setup.md.

For withdrawals, do not proceed until a local os keyring key is known for the same address. Do not broadcast a withdrawal until the user confirms the matching key name/address and the RPC node they want to use.

Workflow checklist

  • Env: If needed, export SHENTU_CHAIN_ID / SHENTU_NODE_URL, or set OPENMATH_ENV_CONFIG to a specific openmath-env.json; otherwise use the built-in mainnet defaults and standard config auto-discovery.
  • Address: Use an explicit address, or let query_reward_status.py rewards auto-discover prover_address from OPENMATH_ENV_CONFIG or the standard openmath-env.json locations.
  • Query: Run query_reward_status.py rewards [address] (or shentud q bounty rewards <address> --node <shentu_node_url>) to see imported_rewards and/or proof_rewards.
  • Withdraw: If any bucket is non-empty, first make sure a local os keyring key controls the same address, confirm shentud keys show <your-key> -a --keyring-backend os matches the reward address, then run shentud tx bounty withdraw-rewards --from <your-key> --keyring-backend os --chain-id <shentu_chain_id> --node <shentu_node_url> --gas-prices 0.025uctk --gas-adjustment 2.0 --gas auto (use SHENTU_CHAIN_ID / SHENTU_NODE_URL or the built-in defaults).
  • Wait: 5–10 s for block inclusion.
  • Re-query: Run query_reward_status.py tx <txhash> --wait-seconds 6, then query_reward_status.py rewards <address> --wait-seconds 6 to confirm withdrawal; empty buckets are reported as zero, not error.

Scripts

Script Command Use when
Query rewards python3 scripts/query_reward_status.py rewards [address] [--config <path>] [--wait-seconds 0] Checking claimable imported_rewards and proof_rewards for an address, or auto-discovering prover_address from --config, OPENMATH_ENV_CONFIG, or the default config locations when omitted.
Query tx python3 scripts/query_reward_status.py tx <txhash> [--wait-seconds 6] After withdraw broadcast to confirm inclusion.

Withdraw is done with raw shentud tx bounty withdraw-rewards --keyring-backend os (see workflow above).

Notes

  • Buckets: imported_rewards (theorem imported/referenced), proof_rewards (proofs verified). One withdraw pulls both if present.
  • Mainnet: Default --chain-id shentu-2.2 --node https://rpc.shentu.org:443.
  • Config override: Set OPENMATH_ENV_CONFIG=/path/to/openmath-env.json or use --config if you want a non-default config path.
  • Requirements: Requires trusted local python3 and shentud on PATH.
  • Env vars: OPENMATH_ENV_CONFIG, SHENTU_CHAIN_ID, and SHENTU_NODE_URL are optional overrides, not required for the default mainnet flow.
  • Keyring: Always use --keyring-backend os for reward withdrawal commands generated from this skill.
  • Trust boundary: Reward queries shell out to local shentud; withdrawals also sign through the local OS keyring. Verify the key name, resolved address, and RPC/node URL before broadcasting.

References

Load when needed (one level from this file):

Identity setup for theorem submission still lives in openmath-submit-theorem, but reward querying itself does not require openmath-env.json.