Meteora Marathon · 29 Aug 2026 · Razzaer
Build your own DLMM tools with AI
The kit, the starter prompt and the follow-ups from the session. Paste the prompt into your own coding agent tonight and you will have a working tool before you go to bed.
The one rule: hand the AI the SDK, then make it prove every number on a real wallet before you believe it. Read-only tools are safe to build this way. Anything that signs is a different sport.
What you need
A little money. About $20 a month (Claude Pro, or Codex with ChatGPT Plus) is enough for read-only tools. $100 to $200 a month (Claude Max) is enough to build a product. Open-weights models like Kimi or DeepSeek are near free through an API key, rougher but they work. One subscription costs less than one bad rebalance.
A problem you can say in one sentence. Not “an app”. “Show me every wallet that opened in this pool in the last 10 minutes.” “Tell me my fees per hour, not per position.” “Replay how this wallet traded BONK last week.” If you can say it in one sentence, the agent can build version 1 tonight. It is for you: no login, no landing page, no users.
The kit
Everything I actually build against, and nothing else.
AI coding tool, pick one
- Claude Code · terminal, what I use
- Cursor · editor
- Codex CLI · comes with ChatGPT Plus
- Kimi · open weights, near free through an API key
- DeepSeek · open weights
Chain access
- Helius · RPC, free tier is fine to start; webhooks once you want live events
Meteora
- @meteora-ag/dlmm on npm · the SDK. Pin 1.9.9, it is what the prompt below expects
- dlmm-sdk on GitHub
- docs.meteora.ag · SDK docs and the pool APIs
Prices and tokens
- Jupiter price API · v3, the field is usdPrice
- DexScreener API
- Birdeye API
Wallet intelligence
- LP Agent API · position history per wallet, hours before Meteora’s own API has it. 5 requests a minute on the free key
- TrackLP leaderboards · pick a public wallet to test against
Glue, only when a script is not enough
- Supabase · free Postgres
- Inngest · jobs and crons
- Hetzner Cloud · a 5 euro box that runs all night
- Telegram bots · the cheapest alert channel there is
Start tonight
You do not install anything by hand. The agent does the setup.
- Make an empty folder. Open your coding agent in it. That is the only setup.
- Paste the prompt below. It installs the SDK, reads it, asks you for what it needs, writes the script and runs it.
- When it asks, give it a Helius RPC URL and a wallet address. Use a public wallet from the TrackLP leaderboard, not your own.
- Open the same wallet on meteora.ag. Check the numbers match. If they do not, tell the agent what is wrong and let it fix it.
Set up a small TypeScript project in this folder and install @meteora-ag/dlmm version 1.9.9 and @solana/web3.js. Before you write any code, read node_modules/@meteora-ag/dlmm, the README and the .d.ts type files, so you use the real API of the installed version and not what you remember. Ask me for a Solana RPC URL and store it in a .env file. Then ask me for a wallet address. Write a script that lists every open DLMM position for that wallet: pool address, token pair, bin range, active bin, whether the position is in range, and the token amounts in each side. Run it and show me the result as a table. If anything fails, fix it and run it again.
The second paragraph is the part that matters. Models remember an older version of the SDK and will write against it with full confidence. Making the agent read the installed package first is the difference between a script that runs and an afternoon of errors.
Follow-ups
Once the first table matches the chain, ask for the next thing. One sentence at a time. Each one is a two-minute loop: you ask, it builds and runs, you check it on the chain, you ask again. Three loops is a tool. Thirty is a product.
Fees per hour
Add unclaimed fees for each position and how long it has been open. Sort the table by fees per hour.
Several wallets at once
Let me pass several wallet addresses on the command line and show them all in one table, with a total per wallet at the bottom.
Out-of-range alert
Run this every 10 minutes and send me a Telegram message when a position goes out of range. Ask me for the bot token and chat id and keep them in .env.
Who else is in the pool
For one pool address, list every wallet that opened a position in the last hour, with the size of each position in SOL. Use the same RPC.
It will error. That is normal.
Be specific. “Make me a tool for my positions” gets you nothing. Name the wallet, the fields you want, and the shape of the output. The agent cannot guess what you want to see.
You will hit errors. The very first run of the starter prompt on my own machine stopped on ERR_REQUIRE_ASYNC_MODULE. The fix was one sentence: “That errored, fix it and run it again.” Paste the error back, say what you expected, let it try again. You do not need to understand the error.
Keep going. If it has an RPC and the SDK it can read anything on Solana. Most problems are not knowledge problems, they are one more loop. Budget an evening for your first script, a weekend for a tool you use every day, and months for anything that signs. The cost is time, not skill.
Where it goes wrong
Each of these cost me money or a week.
- It does not know the SDK
- It will write old v1 calls against the v2 SDK and sound certain. Make it read the installed package before it writes anything. Every session.
- Confirmed is not landed
- A transaction can confirm and move nothing. If your tool signs anything, it reads the result back on chain and stops if it does not match.
- Token amounts can be wrong
- Token-2022 and pump.fun tokens can report raw amounts. Take decimals from the balance changes, or you get 9-figure positions that do not exist.
- Rate limits are shared
- LP Agent allows 5 requests a minute. Two of your own scripts will block each other. One queue, one key.
- Keys
- The AI never gets a key that holds real funds. Burner wallet, small size, check it works, then scale.
- Read what it built
- Keep a file of what went wrong. Each entry will be something the AI did with full confidence that you only caught by checking the chain.