{"id":18972835,"url":"https://github.com/piotrostr/listen","last_synced_at":"2025-06-12T16:33:39.174Z","repository":{"id":239486268,"uuid":"793468694","full_name":"piotrostr/listen","owner":"piotrostr","description":"Solana Swiss Army Knife","archived":false,"fork":false,"pushed_at":"2025-04-04T20:12:22.000Z","size":9553,"stargazers_count":887,"open_issues_count":8,"forks_count":136,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-04-04T21:24:11.813Z","etag":null,"topics":["ai","dex","memecoins","rust","solana","trading"],"latest_commit_sha":null,"homepage":"https://listen-rs.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/piotrostr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-29T09:27:10.000Z","updated_at":"2025-04-04T16:49:18.000Z","dependencies_parsed_at":"2025-01-09T10:13:44.189Z","dependency_job_id":"0de4daa8-5038-42aa-9941-51a6f9b448df","html_url":"https://github.com/piotrostr/listen","commit_stats":null,"previous_names":["piotrostr/listen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrostr%2Flisten","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrostr%2Flisten/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrostr%2Flisten/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrostr%2Flisten/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrostr","download_url":"https://codeload.github.com/piotrostr/listen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248368828,"owners_count":21092460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","dex","memecoins","rust","solana","trading"],"created_at":"2024-11-08T15:10:03.778Z","updated_at":"2025-06-12T16:33:39.168Z","avatar_url":"https://github.com/piotrostr.png","language":"Rust","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"listen-landing/public/listen-more.png\" width=\"35%\" /\u003e\n\u003cbr /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://docs.listen-rs.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-API-blue.svg\" /\u003e\u003c/a\u003e \u0026nbsp;\n\u003ca href=\"https://github.com/piotrostr/listen\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/piotrostr/listen?style=social\" /\u003e\u003c/a\u003e\n\u003ca href=\"\"\u003e\u003cimg src=\"https://img.shields.io/badge/built_with-Rust-dca282.svg?logo=rust\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ccode\u003elisten\u003c/code\u003e started sa Solana Swiss-Knife toolkit for algorithmic trading, its mission is to become the go-to framework for AI portfolio management agents\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\nIt powers the \u003ca href=\"https://app.listen-rs.com/\"\u003eListen App\u003c/a\u003e, check it out to see what \u003ccode\u003elisten\u003c/code\u003e framework is capable of\n\n## Listen Architecture\n\n```mermaid\ngraph TB\n    subgraph \"Rig Agent Kit by Listen\"\n        RAK[RIG Agent Kit]\n        RAK_MT[Multi-tenant Stream Manager]\n        RAK_WALLET[Delegated Wallet Manager]\n        RAK --\u003e RAK_MT\n        RAK --\u003e RAK_WALLET\n    end\n\n    subgraph \"Listen Trading Engine\"\n        LTE[Trading Engine]\n        ORDER_COL[Order Collector]\n        PIPE[Pipeline Executor]\n        EXEC[Order Executor]\n\n        ORDER_COL --\u003e PIPE\n        PIPE --\u003e EXEC\n        LTE --\u003e ORDER_COL\n    end\n\n    subgraph \"Listen Data Service\"\n        LDS[Data Service]\n        SUB[Substreams Indexer]\n        DB[(Clickhouse OLAP)]\n        PRICE[Price Stream]\n\n        SUB --\u003e|Index Solana Slots| DB\n        LDS --\u003e PRICE\n        LDS --\u003e DB\n    end\n\n    %% External Systems\n    MOBILE[Mobile App]\n    CHAIN((Blockchain))\n    PRIVY((Privy))\n    WALLET[(Solana/EVM Wallets)]\n\n    %% Connections\n    RAK --\u003e|Tool Calls| CHAIN\n    RAK --\u003e|Execute Trades| LTE\n    LDS --\u003e|Pricing Updates| LTE\n    LDS --\u003e|Enriched Data| MOBILE\n    MOBILE --\u003e|User Intents| RAK\n    LTE --\u003e|Sign \u0026 Send Tx| CHAIN\n    DB --\u003e|Query Data| RAK\n    RAK_WALLET --\u003e|Integration| PRIVY\n    PRIVY --\u003e WALLET\n\n```\n\n## Features\n\n- 🔍 Real-time transaction monitoring\n- 💱 Multi-DEX swap execution (Pump.fun, Jupiter V6 API or Raydium)\n- 🚀 Blazingly fast transactions thanks to Jito MEV bundles\n- 📊 Price tracking and metrics\n- 🧰 Token management utilities\n- 📈 Performance monitoring with Prometheus integration\n\nAnd more!\n\nIt works plug'n'play with [$arc rig\nframework](https://github.com/0xPlaygrounds/rig) framework allowing AI Agents\ninteract with the Solana blockchain, see example:\n[src/agent.rs](https://github.com/piotrostr/listen/blob/main/src/agent.rs) and\nthe output [image](https://github.com/piotrostr/listen/blob/main/example.png).\n\nSome more docs on the agentic stuff: [rig-onchain-kit](https://0xplaygrounds.github.io/rig-onchain-kit/introduction.html)\n\nFor complete rundown of features, check out the CLI output of `cargo run` or the\n[documentation](https://docs.listen-rs.com/).\n\n## Quickstart\n\nTo play around with listen-rs, you can use the UI\n\nFill in the `.env.example` and `./dashboard/.env.example`, copy over to `.env` and `./dashboard/.env.example`, then\n\n```\ndocker compose up\n```\n\nYou can then access the dashboard over `http://localhost:4173`\n\n\u003e [!WARNING]\n\u003e listen-rs is undergoing rapid iterations, some things might not work and there could be breaking changes\n\n## Requirements\n\n1. **System Dependencies**\n\n   - Rust (with nightly toolchain)\n   - `protoc`\n   - `build-essential`\n   - `pkg-config`\n   - `libssl-dev`\n\n2. **Configuration**\n   - Copy `.env.example` to `.env`\n   - Set up `auth.json` for JITO authentication (optional, gRPC HTTP/2.0 searcher client)\n   - Populate `fund.json`\n\nBoth keypairs are in `solana-keygen` format, array of 64 bytes, 32 bytes\nprivate key and 32 bytes public key.\n\n## Quick Start\n\n```bash\n# Install dependencies\nsudo apt install protoc build-essential pkg-config libssl-dev\n\n# Build\ncargo build --release\n\n# Run services\n./run-systemd-services.sh\n```\n\n## Usage Examples\n\n### Transaction Monitoring\n\n```bash\ncargo run -- listen \\\n  --worker-count [COUNT] \\\n  --buffer-size [SIZE]\n```\n\n### Token Swapping\n\n```bash\ncargo run -- swap \\\n  --input-mint sol \\\n  --output-mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v \\\n  --amount 10000000\n```\n\n\u003e [!WARNING]\n\u003e Default configuration is set for mainnet with small transactions. Ensure proper configuration for testnet usage and carefully review code before execution.\n\n## Metrics and Monitoring\n\nListen includes built-in metrics exposed at `localhost:3030/metrics`. To visualize:\n\n1. Start Prometheus:\n\n```bash\nprometheus --config=prometheus.yml\n```\n\n2. Access metrics at `localhost:3030/metrics`\n\nGrafana should show something like this\n\n\u003cimg\nwidth=\"910\"\nalt=\"image\"\nsrc=\"https://github.com/piotrostr/listen/assets/63755291/95668158-9f7d-4cd2-be84-7c2b893d3f5c\"\u003e\n\n## Advanced Usage\n\n### Swap Profiling\n\nThe `stackcollapse.pl` can be installed through\n\n```sh\ngh repo clone brendangregg/FlameGraph \u0026\u0026 \\\n  sudo cp FlameGraph/stackcollapse.pl /usr/local/bin \u0026\u0026 \\\n  sudo cp FlameGraph/flamegraph.pl /usr/local/bin\n```\n\nProfile swap performance using DTrace to produce a flamegraph:\n\n```bash\n./hack/profile-swap.sh\n```\n\n\u003cimg width=\"1210\" alt=\"image\" src=\"https://github.com/piotrostr/listen/assets/63755291/699405b7-adf0-448b-89c1-ba71152dc72b\"\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotrostr%2Flisten","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiotrostr%2Flisten","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotrostr%2Flisten/lists"}