/install 31third-safe-rebalancer
31Third Safe Rebalancer
This skill helps you monitor portfolio drift and prepare/execute policy-compliant rebalances on a Gnosis Safe through the 31Third ExecutorModule.
Best-practice usage:
- Use one-step execution by default:
npm run cli -- rebalance-now. - Only use separated tools (
check_drift,plan_rebalance,execute_rebalance, etc.) if you explicitly understand each step and want manual control. - If unsure, run
helpfirst (npm run cli -- help) and follow that guidance.
Prerequisites
- Node.js 22+
- npm
Local Setup
npm install
npm run build
Getting Started
If you have not deployed your policy stack yet, deploy it first: \x3Chttps://app.31third.com/safe-policy-deployer>
Set required environment variables:
SAFE_ADDRESS=0xYourSafe
CHAIN_ID=8453
TOT_API_KEY=your_api_key
RPC_URL=https://mainnet.base.org
EXECUTOR_MODULE_ADDRESS=0xYourExecutorModule
EXECUTOR_WALLET_PRIVATE_KEY=0x...
ORACLE_MAX_AGE_SECONDS=3600
HEARTBEAT_INTERVAL_SECONDS=21600
TOT_API_KEY (31Third API key) can be requested via \x3Chttps://31third.com/contact> or by emailing [email protected].
Wallet model and key handling:
- Safe owner wallet: controls Safe ownership/governance operations. Never share this private key with the skill.
- Executor wallet: configured as executor on
ExecutorModulein the wizard. This private key is required by the skill forexecute_rebalance. - The final step of the 31Third wizard provides an overview of all required environment variables. Use that as source of truth when configuring this skill.
What This Skill Does
- Reads active on-chain policies from
ExecutorModule. - Computes current-vs-target drift (
check_drift). - Validates trades against Asset Universe + Slippage boundaries (
validate_trade). - Runs a configurable heartbeat monitor (
automation) and returns an alert payload when drift exceeds threshold. - Simulates and executes approved rebalance batches (
execute_rebalance) with pre-executioncheckPoliciesVerbosevalidation and one retry on unknown execution failures. - Accepts SDK
plan_rebalanceoutput directly for execution (txData+requiredAllowances) and decodes batch trade calldata internally. - Fast-fails execution if
scheduler != registryon theExecutorModule, printing both addresses. - Generates SDK-based policy-aware trade plans (
plan_rebalance) using current Safe balances (bounded by Asset Universe when present) asbaseEntries. - Provides one-command execution (
rebalance_now) for non-technical users: drift check -> SDK plan -> execution. - Returns setup and capability guidance (
help).
Execution Safety
Before execution, the agent provides a clear reason, for example:
BTC is at 54.00%, target is 50.00% (drift 400 bps). Rebalance required.
The skill uses:
- Viem
publicClientfor all reads. - Viem
walletClientfor execution.
Execution Contract (Important)
When using SDK/trading-api rebalancing output, execution must follow this exact pattern:
- Build approvals from
requiredAllowancesas(tokenAddress, neededAllowance). - Decode
txDataasbatchTrade(trades, config). - Re-encode
encodedTradeDataas ABI tuple:tuple(string,address,uint256,address,uint256,bytes,bytes)[]tuple(bool,bool)
- Run
checkPoliciesVerbose(tradesInput, configInput)before submitting. - Read
schedulerandregistryfrom ExecutorModule. - Ensure the signing executor wallet address equals
registry(required byonlyRegistry). - Only execute immediate path (
executeTradeNow(approvals, encodedTradeData)) whenscheduler == registry. - If
scheduler != registry, fail fast and show both addresses.
This is the required execution semantics for this skill and should not be changed to raw passthrough calldata execution.
CLI
Run the bundled CLI:
npm run cli -- help
npm run cli -- check-drift
npm run cli -- automation --last-heartbeat-ms 0
npm run cli -- plan-rebalance --signer 0xYourSigner --min-trade-value 100
npm run cli -- rebalance-now
npm run cli -- validate-trade --trade '{"from":"0x...","to":"0x...","fromAmount":"1000000000000000000","minToReceiveBeforeFees":"990000000000000000"}'
npm run cli -- execute-rebalance --trades '[{"exchangeName":"0x","from":"0x...","fromAmount":"1000000000000000000","to":"0x...","minToReceiveBeforeFees":"990000000000000000","data":"0x...","signature":"0x..."}]' --approvals '[{"token":"0x...","amount":"1000000000000000000"}]'
npm run cli -- execute-rebalance --rebalancing '{"txData":"0x...","requiredAllowances":[{"token":{"address":"0x..."},"neededAllowance":"1000000000000000000"}]}'
Read-only smoke preflight:
npm run smoke -- --signer 0xYourSigner
npm run smoke -- --trades '[...]' --approvals '[...]'
Notes
- This skill is automation infrastructure, not investment advice.
- Validate behavior in test/staging before running in production.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install 31third-safe-rebalancer - After installation, invoke the skill by name or use
/31third-safe-rebalancer - Provide required inputs per the skill's parameter spec and get structured output
What is 31Third Safe Rebalancer?
Policy-aware Safe portfolio rebalancing assistant for 31Third ExecutorModule. It is an AI Agent Skill for Claude Code / OpenClaw, with 315 downloads so far.
How do I install 31Third Safe Rebalancer?
Run "/install 31third-safe-rebalancer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is 31Third Safe Rebalancer free?
Yes, 31Third Safe Rebalancer is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does 31Third Safe Rebalancer support?
31Third Safe Rebalancer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created 31Third Safe Rebalancer?
It is built and maintained by Phips0812 (@phips0812); the current version is v0.2.0.