Skip to main content

31third-safe-rebalancer

Policy-aware Safe portfolio rebalancing assistant for 31Third ExecutorModule.

소스 정보

저장소
RabbitAI-Lab/rabbit-plugins-upstream
최근 소스 활동
2026년 7월 26일 20:50
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
30 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
31third-safe-rebalancer
description
Policy-aware Safe portfolio rebalancing assistant for 31Third ExecutorModule.
homepage
https://31third.com
# 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 `help` first (`npm run cli -- help`) and follow that guidance. ## Prerequisites - Node.js 22+ - npm ## Local Setup ```bash npm install npm run build ``` ## Getting Started If you have not deployed your policy stack yet, deploy it first: <https://app.31third.com/safe-policy-deployer> Set required environment variables: ```bash 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 <https://31third.com/contact> or by emailing `dev@31third.com`. 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 `ExecutorModule` in the wizard. This private key is required by the skill for `execute_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-execution `checkPoliciesVerbose` validation and one retry on unknown execution failures. - Accepts SDK `plan_rebalance` output directly for execution (`txData` + `requiredAllowances`) and decodes batch trade calldata internally. - Fast-fails execution if `scheduler != registry` on the `ExecutorModule`, printing both addresses. - Generates SDK-based policy-aware trade plans (`plan_rebalance`) using current Safe balances (bounded by Asset Universe when present) as `baseEntries`. - 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 `publicClient` for all reads. - Viem `walletClient` for execution. ## Execution Contract (Important) When using SDK/trading-api rebalancing output, execution must follow this exact pattern: 1. Build approvals from `requiredAllowances` as `(tokenAddress, neededAllowance)`. 2. Decode `txData` as `batchTrade(trades, config)`. 3. Re-encode `encodedTradeData` as ABI tuple: - `tuple(string,address,uint256,address,uint256,bytes,bytes)[]` - `tuple(bool,bool)` 4. Run `checkPoliciesVerbose(tradesInput, configInput)` before submitting. 5. Read `scheduler` and `registry` from ExecutorModule. 6. Ensure the signing executor wallet address equals `registry` (required by `onlyRegistry`). 7. Only execute immediate path (`executeTradeNow(approvals, encodedTradeData)`) when `scheduler == registry`. 8. 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: ```bash 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: ```bash 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.
GitHub에서 보기