Discord bot MVP for LPAgent communities. Users configure a public wallet address, then use slash commands to inspect balances, LP positions, portfolio metrics, pools, and alerts.
- Node.js 22 + TypeScript
- discord.js v14
- PostgreSQL + Prisma
- node-cron for alert polling
- zod for env and input validation
- pino for logging
-
Install dependencies:
yarn install
-
Copy env values:
cp .env.example .env
-
Start local Postgres:
docker compose up -d
-
Apply migrations:
yarn db:migrate
-
Register Discord slash commands for your dev guild:
yarn commands
-
Run the bot:
yarn dev
/wallet connect <address>/wallet status/wallet currency <USD|Native>/wallet unlink/balance/positions address:<optional>/portfolio address:<optional>/pools search:<token> sort:<optional, defaults to fee_tvl_ratio>/pool info address:<poolAddress>/pool positions address:<poolAddress> owner:<optional> status:<optional>/pool top-lpers address:<poolAddress> sort:<optional>/alert add type:<type> position_id:<optional> threshold:<optional>/alert list/alert remove <id>
The MVP stores public wallet addresses only. Do not collect private keys, seed phrases, or signed transactions in Discord. Keep LPAGENT_API_KEY server-side in .env.