Bounds, Alerts & Ledger
Policy bounds, alert monitoring, position tracking, and activity ledger
Policy Bounds
Bounds gate all write operations. The agent cannot exceed these limits, preventing runaway transactions.
get_bounds
Returns the current policy bounds.
{
"maxStakePerTx": 10,
"maxDailyStake": 50,
"minEthReserve": 0.5,
"autoRestakeThreshold": 0.05,
"governanceAutoVote": false
}set_bounds
Updates one or more policy bounds. Only pass the fields you want to change.
{
"maxStakePerTx": 2.0,
"minEthReserve": 0.3,
"governanceAutoVote": true
}governanceAutoVote is false, the agent cannot call cast_vote. Set it to true to allow autonomous voting.Cross-chain Position
get_total_position
Returns an aggregated position across Ethereum mainnet, Base, and Arbitrum, all converted to ETH equivalent.
{ "address": "0x..." }Alerts
Alerts fire via Telegram or webhook when conditions are met. Requires the monitor daemon (moly monitor start).
set_alert
Creates a new alert rule. Supported conditions:
| Condition | Threshold | Fires when |
|---|---|---|
| balance_below | ETH amount | ETH balance drops below threshold |
| balance_above | ETH amount | ETH balance rises above threshold |
| reward_rate_below | Rate | Staking reward rate drops below threshold |
| reward_rate_above | Rate | Staking reward rate rises above threshold |
| withdrawal_ready | None | Any pending withdrawal is finalized |
| proposal_new | None | A new governance proposal is created |
| conversion_rate_above | Rate | stETH/wstETH rate exceeds threshold |
| conversion_rate_below | Rate | stETH/wstETH rate drops below threshold |
| reward_delta | ETH amount | Reward change exceeds threshold |
| governance_expiring | None | A governance vote is about to expire |
{
"condition": "balance_below",
"threshold": 1.0,
"channel": "telegram"
}list_alerts / remove_alert
list_alerts returns all configured alerts. remove_alert takes an alert ID to delete it.
configure_alert_channels
Sets up Telegram or webhook notification channels.
{
"telegram_token": "123456:ABC...",
"telegram_chat_id": "-100123456",
"webhook_url": "https://example.com/hook"
}Activity Ledger
Every tool execution is logged to a SQLite database for auditability.
get_trade_history
Query the ledger with optional filters by tool name, date range, and result limit.
{
"tool": "stake_eth",
"since": "2026-01-01",
"limit": 20
}get_staking_summary
Returns aggregate stats: total operations, total ETH staked, error count.
{ "since": "2026-01-01" }