harb/services/txnBot/AGENTS.md
johba 83a1b576e4 chore: gardener housekeeping 2026-03-22
- Update all AGENTS.md watermarks to HEAD (5f01d55)
- Add feeDestinationLocked and recenterAccess removal to onchain/AGENTS.md guardrails
- Add gardener/dust.jsonl accumulator (6 dust items: onchain comments, evidence schema docs)

Issues actioned via API:
- Closed #1085 as duplicate of #1082
- Promoted #1079, #1082, #1084 to backlog with acceptance criteria
- Unblocked #607, #609, #610, #611, #614, #615 (dev-crash blockers, no technical blockers)
- Added dependency-resolved comment to #1054 (dep #970 now closed)
2026-03-22 08:47:11 +01:00

38 lines
2 KiB
Markdown

<!-- last-reviewed: 5f01d55cc7ce0f3499967536971878ef968d59ba -->
# Transaction Bot - Agent Guide
Automation service that maintains liquidity alignment and tax enforcement for the KRAIKEN protocol.
## Responsibilities
- Monitor Ponder GraphQL metrics to detect when `recenter()` should be triggered.
- Track staking positions for overdue taxes and call `payTax()` when profitable.
- Expose a status endpoint (`GET /status`) for operational visibility.
## Architecture
- `service.js` - Main loop that polls the GraphQL endpoint, evaluates triggers, and submits transactions.
- `generateKey.js` - Utility for provisioning dedicated bot wallets.
- `package.json` scripts - `npm install`, `npm start`, and debug runs via `DEBUG=* npm start`.
- **ES Module**: This service uses `"type": "module"` and imports kraiken-lib as an ES module. All imports use ES module syntax (`import` instead of `require()`).
- **Node.js Compatibility**: Requires Node.js ≥14 with ES module support. The `__dirname` and `__filename` globals are not available; use `import.meta.url` with `fileURLToPath()` instead.
## Configuration
Set the following environment variables (automatically generated when the stack script is used):
```
ENVIRONMENT=BASE_SEPOLIA_LOCAL_FORK|BASE_MAINNET_LOCAL_FORK|BASE_SEPOLIA|BASE
PROVIDER_URL=<rpc-url>
PRIVATE_KEY=<hex-private-key>
LM_CONTRACT_ADDRESS=<liquidity-manager-address>
STAKE_CONTRACT_ADDRESS=<stake-contract-address>
GRAPHQL_ENDPOINT=<ponder-graphql-url>
# Optional: PORT=43069
```
## Operations
- Launch via `nohup ./scripts/dev.sh start &`; the script handles env injection and process supervision.
- For focused debugging, run `npm install` then `npm start` within `services/txnBot/` after the stack is already up.
- Monitor logs for transaction receipts and ensure gas pricing stays within acceptable bounds.
## Safety Checklist
- Use dedicated wallets and keep balances minimal.
- Rotate keys if compromise is suspected; update secrets before restarting the stack.
- Observe exponential backoff behaviour and avoid hammering RPC endpoints on failure.