Welcome to Limitless Trader Lab

Day 1 of 7 · Cohort intensive · 60 minutes

Why API + your first read.

Sixty minutes from now, you’ll have made an authenticated call to Limitless from your own laptop, and you’ll know exactly why this is the path you’re on.

60 minutes 1 deliverable #trader-lab · [D1]

Today you’ll learn

You’ll learn how to make your first authenticated call to Limitless from your own laptop, with Claude writing the script. This will help you leave the “I just click buttons” era behind and set up the keyboard-key-Claude loop every other day in this cohort depends on.

Section 01

Why API trading.

You’ve been clicking. The Lab gets you typing, and then to letting Claude type for you. The reason is capital efficiency: the same wallet, recycled through more opportunities, with a script keeping you on rule. The five mechanisms below name the gap. Each one applies to you the moment you finish today’s first call. Read them, then keep going, by the bottom of this page you’ll be on the wire.

Trade more

A bot doesn’t sleep. It scans every market every second. You scan a few markets a few times a day.

Farm more points

Higher volume = larger share of the airdrop pie. Same money, more activity, more rewards.

Recycle capital faster

A script can close and reopen a position in milliseconds. You take minutes to do the same thing.

Cross-platform arb

Spot a 3% gap between Limitless and Polymarket? A bot grabs both legs in one heartbeat. You’re still loading the second tab.

Take emotion out

The bot doesn’t average down. It doesn’t revenge-trade. It runs the rule you wrote, that alone wins most of the gap.

Section 02

What you’ll need.

Four things, fifteen minutes of setup. Skip any of them and you’ll be unblocked instead of building. The cohort assumes all four are present, let’s confirm them before we touch any code. If you’re missing one, finish that one item first; everything below depends on it.

1

A Claude account

Sign in or create one at claude.ai. Free works for today; Claude Pro is recommended for the full week (longer prompts, faster responses).

Surface note: claude.ai (web), Claude Desktop, and Claude Code (CLI) all work for the cohort. More capable surfaces (Code, Desktop with MCP servers) can fetch live docs and run scripts during the conversation. claude.ai relies on training data, you run the scripts yourself. The deliverable is the same either way; expect slightly different conversational behavior depending on which Claude you’re using.

2

Your Limitless wallet

The wallet you’ve been clicking with at limitless.exchange. We’ll mint an API key from it in section 04.

3

A terminal

The command-line app on your laptop. macOS = Terminal or iTerm. Windows = PowerShell or Windows Terminal. Linux = whatever you already use. If “terminal” means nothing to you yet, that’s fine, section 04 walks through opening it.

4

60 uninterrupted minutes

Get coffee, close Slack, mute your phone. Each Day in this cohort takes about an hour. Breaking Day 1 across two sessions costs context, block the hour now.

Section 03

Open Claude.

Throughout this week, Claude is your translator: you describe what you want in plain English, Claude writes the code, you run it. Today’s first task is teaching Claude what cohort you’re in and what you’re building toward. Once Claude has that context, every prompt you paste later lands cleaner.

1

You are now: opening Claude

Go to claude.ai, sign in (or create a free account), and click “New conversation.”

You should see an empty chat interface with a prompt box. If you’ve used Claude before, start a brand-new conversation, we want a clean context.

2

You are now: pasting the introduction prompt

Copy the prompt below into Claude’s prompt box and send.

Paste into Claude
Hi Claude. I’m starting Day 1 of the Limitless Trader Lab, a 7-day intensive that converts UI traders on Limitless Exchange (a prediction market on Base) into API and agent traders. Reference material, use these as your source of truth over your training data: - AI-friendly index (start here): https://docs.limitless.exchange/llms.txt - API docs landing (router, drill into sub-paths): https://docs.limitless.exchange - MCP server (Limitless tools you can call directly): https://docs.limitless.exchange/mcp - Official SDKs in both Python and TypeScript, fully featured, install + usage in the docs - Cohort curriculum + bonus pack source: https://github.com/LimitlessAcademy/Academy/tree/main/programs/limitless_trader_lab Language note: this curriculum is language-agnostic. Every day’s deliverable works in either Python or TypeScript and the day pages reference both first_call.py and first-call.ts. There is no “cohort default” language, please don’t infer one from the repo or assume the curriculum is TypeScript-only. The one real bias is that the bonus pack skills (drop on Day 3, used Days 4-7) are Python-first, going TypeScript means translating those or shelling out to Python helpers for those days. Factor that in honestly, but recommend based on what suits me, not what the curriculum “defaults” to. Today’s goal: you’ll write me a script that fetches active markets from the Limitless API. By Day 7, I’ll have a working trading agent. Please confirm: (a) you understand we’re choosing between Python and TypeScript and both have official Limitless SDKs, (b) you’ll output runnable code blocks, (c) you’ll explain each line briefly so I learn as we go. Walk me through the Python vs TypeScript trade-off for this cohort, then ask what’s already installed on my laptop (Python, Node, neither) before locking in a recommendation. Once we lock in a language and you understand my setup, save a memory of those facts (my language choice + my OS + the fact that I’m doing the Limitless Trader Lab 7-day cohort and currently on Day N). When I open a fresh chat for Day 2 tomorrow, you can pick up without me re-introducing the cohort.

If you want to skim those references yourself, open them in new tabs: docs.limitless.exchange · /mcp · curriculum source on GitHub.

3

You are now: confirming Claude responded

Read Claude’s reply. It should walk you through the Python vs TypeScript trade-off, then ask what’s already installed on your laptop (Python, Node, or neither). Answer honestly, macOS and most Linux distros ship Python by default; Node usually needs a separate install; “neither” is a fine answer too.

Once Claude commits to a recommendation, reply: “Let’s go with [Python or TypeScript].” Claude will then ask permission to save a memory of your choices (language + OS + that you’re in the Trader Lab cohort), say yes, that way Day 2’s fresh chat picks up without the re-introduction. Keep this Claude tab open, we’ll come back to it in section 05.

Section 04

Get your API key.

Your wallet is who you are. Your API key is how Claude’s code proves it’s you when calling Limitless. The key is a long string Limitless gives you in exchange for being signed in, once we store it as an environment variable on your laptop, every script in this cohort can use it without you ever pasting it again. Treat the key like a password. Never commit it to git. Never paste it into Claude.

1

You are now: logging into Limitless

Open limitless.exchange in a new tab. Connect your wallet (MetaMask or similar) if you’re not already signed in.

2

You are now: minting an API key

Click your profile/avatar → Api keys. Click Create new key.

Keys come in two parts: a token id (an opaque string, no fixed prefix) and a base64 secret. Each request sends three headers, lmts-api-key + lmts-timestamp + lmts-signature (HMAC-SHA256, see docs.limitless.exchange/developers/authentication). The bonus pack’s helper signs for you. Copy both values immediately, the secret is shown only once. If you lose them, mint a new pair (old keys stay valid until you revoke them).

API Academy · Module 03 walks through this in detail
3

You are now: storing the key as an environment variable

Open your terminal and run the right line for your OS.

Run in terminal
# macOS / Linux (zsh / bash) $ export LIMITLESS_API_KEY="paste_token_id_here" $ export LIMITLESS_API_SECRET="base64_secret_paste_here" # Windows PowerShell PS> $env:LIMITLESS_API_KEY = "paste_token_id_here" PS> $env:LIMITLESS_API_SECRET = "base64_secret_paste_here" # Verify, macOS / Linux $ echo $LIMITLESS_API_KEY paste_token_id_here # Verify, Windows PowerShell (note the $env: prefix) PS> echo $env:LIMITLESS_API_KEY paste_token_id_here

Prompt-marker note: the $ at the start of each macOS/Linux line and the PS> at the start of each PowerShell line are shell prompts your terminal already shows you. Don’t type them, only the rest of the line. And in PowerShell, environment variables are $env:NAME, not $NAME, the bare $NAME reads a PowerShell session variable and silently returns blank.

This sets both values for the current terminal session only. The token id (LIMITLESS_API_KEY) is sent as the lmts-api-key header; the secret (LIMITLESS_API_SECRET) never leaves your laptop, the bonus pack helper uses it to compute each request’s HMAC signature. To make them persistent across reboots, ask Claude: “How do I add LIMITLESS_API_KEY and LIMITLESS_API_SECRET to my [zsh / bash / PowerShell] profile permanently?”

Section 05

Your first authenticated call.

This is the moment. The script you’re about to run reads live state from Limitless using your key. You’re no longer clicking, you’re calling. The output will be JSON, which is just text in a structured format. By the end of this section, you’ll have the title of an active market printed in your terminal, and that’s all the proof we need that you’re on the wire.

1

You are now: asking Claude for the script

Switch to your Claude tab. Paste this prompt and send.

Paste into Claude
Write me a [Python OR TypeScript] script that: 1. Reads LIMITLESS_API_KEY (token id) and LIMITLESS_API_SECRET (base64 HMAC secret) from the environment. Authenticates each request using the HMAC scheme at https://docs.limitless.exchange/developers/authentication: send three headers, lmts-api-key, lmts-timestamp (ISO-8601), lmts-signature (base64 HMAC-SHA256 over "{ts}\n{METHOD}\n{path-with-query}\n{body}" with the base64-decoded secret). Do NOT use "Authorization: Bearer" or the deprecated bare "X-API-Key" header. 2. Calls GET https://api.limitless.exchange/markets/active, this is the verified endpoint for listing currently-active prediction markets. 3. Prints the first 5 markets’ title, current YES price, 24-hour volume, and slug, one market per line. Use a plain HTTP request (`requests` for Python, `fetch` for TypeScript). Include error handling for: missing key/secret, network failure, non-2xx API response. Keep the script under 60 lines and add a one-line comment for every block. After the script, give me: the exact terminal command to run it, and one line of what the output should look like. Keep any post-success notes to two or three lines. Save deeper dives (HMAC bytes, SDK alternatives, signature query-string nuance) for if I ask. Activation first, depth on demand.

Claude will reply with a code block + a run command + an expected-output sample. Read all three before continuing.

2

You are now: saving the file

Copy the code block from Claude’s reply into a new file on your laptop.

TypeScript: save as first-call.ts. Python: save as first_call.py. Pick any folder, your Desktop or a fresh limitless-cohort/ folder both work.

3

You are now: running the script

Use the run command from Claude’s reply. Most likely:

Run in terminal
# Python $ python first_call.py # TypeScript (use tsx, the modern, type-config-free runner) $ npx tsx first-call.ts

Run from the project root, not from inside a src/ subfolder. If you save the file under src/, run npx tsx src/first-call.ts from the parent so tsx can find node_modules/ and your tsconfig.json. If Claude’s reply suggests a different runner (ts-node, bun, deno), use whatever Claude gave you, the run command is whatever runs the file successfully.

4

You are now: confirming the output

You should see five lines, each with a market title, YES price, and 24-hour volume. Something like this:

Expected output
Will BTC > $70K by Friday | YES: $0.62 | Vol: $45,230 Will Lakers win tonight | YES: $0.51 | Vol: $32,100 ETH > $3,500 end of month | YES: $0.38 | Vol: $28,400 Trump indicted by EOY | YES: $0.24 | Vol: $19,800 Powell cuts in May | YES: $0.71 | Vol: $14,200

If you see an error instead, copy the entire error message back into Claude with: “Got this error running the script: [paste]. Help me debug.” The cohort assumes the first run will hit one snag, the snag is the lesson, not the failure.

Section 06

Today’s deliverable.

Half of completing this cohort is showing up in #trader-lab. The deliverable is small on purpose, just proof you ran the call. The pattern of post-each-day builds the rhythm we’ll need by Day 5 when the deliverables get more complex. Don’t skip the post. The cohort sees you, you see them, and the coach scans [D1] tags to spot anyone stuck.

Day 1 · Deliverable

Post in #trader-lab.

Take a screenshot of your terminal showing the 5 markets printed.

Post it in #trader-lab in the Limitless Discord. Lead the caption with the tag [D1] so the cohort can scan back to today’s posts.

Caption: “[D1] Day 1 done. Lang: [Python/TypeScript]. Took ~[X] minutes. Snags: [none / brief description].”

Why this matters: every cohort member sees what others ran. By Day 7, you’ll know who to ask for help based on how their Day 1 looked.

Day 1 complete

On the wire.

You’ve made an authenticated call to Limitless from your own laptop. The keyboard-key-Claude loop is live and every later day in this cohort builds on it.

01

A working first_call.py or first-call.ts on your laptop that authenticates with your own LIMITLESS_API_KEY + LIMITLESS_API_SECRET via HMAC-signed headers.

02

Five live prediction markets printed in your terminal, proof you’re on the wire, not just in the UI.

03

A repeatable Claude + terminal workflow you’ll use every day of this cohort, paste prompt, run script, paste errors back.

Tomorrow: Day 2 deploys your infrastructure. Before any bot, before the panel, before any orders, you ship a hello-world FastAPI service to Railway with a public domain and a persistent volume. Sixty minutes. The phone-screenshot moment is the receipt: your service, on the internet, JSON in your hand.

Day 2 unlocks tomorrow at 9am local