lighter
// Interact with Lighter protocol - a ZK rollup orderbook DEX. Use when you need to trade on Lighter, check prices, manage positions, or query account data.
Lighter Protocol
Trade on Lighter - a zero-knowledge rollup orderbook DEX with millisecond latency and zero fees.
Quick Start (Read-Only)
# Markets are public - no credentials needed
curl "https://mainnet.zklighter.elliot.ai/api/v1/orderBooks"
What is Lighter?
- Zero fees for retail traders
- Millisecond latency
- ZK proofs of all operations
- Backed by Founders Fund, Robinhood, Coinbase Ventures
API Endpoint: https://mainnet.zklighter.elliot.ai Chain ID: 300
⚠️ Security Considerations
Third-Party Dependencies
This skill can work with just requests library for read-only operations. For signing orders, you have two options:
Option A: Minimal (Read-Only)
pip install requests
Only for public data (markets, order books, prices).
Option B: Full Trading Requires the official Lighter SDK. Review and verify before installing:
- SDK Repository: https://github.com/elliottech/lighter-python
- Verify the repository owner, stars, and code before running any setup
External Code
Only proceed with external SDK if you:
- Have reviewed the GitHub repository
- Understand what the code does
- Use a dedicated burner wallet, not your main wallet
Environment Variables
| Variable | Required | Description | Where to Find |
|---|---|---|---|
LIGHTER_API_KEY | For orders | API key from Lighter SDK setup | See "Getting an API Key" section below |
LIGHTER_ACCOUNT_INDEX | For orders | Your Lighter subaccount index (0-252) | See "Getting Your Account Index" section below |
LIGHTER_L1_ADDRESS | Optional | Your ETH address (0x...) used on Lighter | Your MetaMask/Wallet address |
Setting Up Your Credentials
Step 1: Get your L1 Address
- This is your Ethereum address (e.g.,
0x1234...abcd) - Use the same wallet you connect to Lighter dashboard
Step 2: Get your Account Index
curl "https://mainnet.zklighter.elliot.ai/api/v1/accountsByL1Address?l1_address=YOUR_ETH_ADDRESS"
Response returns sub_accounts[].index — that's your account index (typically 0 for main account).
Step 3: Get your API Key
- Install Lighter Python SDK:
pip install lighter-python - Follow the setup guide: https://github.com/elliottech/lighter-python/blob/main/examples/system_setup.py
- The SDK generates API keys tied to your account
- Store the private key securely — never commit to git
Quick test (read-only, no credentials):
curl "https://mainnet.zklighter.elliot.ai/api/v1/orderBooks"
API Usage
Public Endpoints (No Auth)
# List all markets
curl "https://mainnet.zklighter.elliot.ai/api/v1/orderBooks"
# Get order book
curl "https://mainnet.zklighter.elliot.ai/api/v1/orderBook?market_id=1"
# Get recent trades
curl "https://mainnet.zklighter.elliot.ai/api/v1/trades?market_id=1"
Authenticated Endpoints
# Account balance (requires API key in header)
curl -H "x-api-key: $LIGHTER_API_KEY" \
"https://mainnet.zklighter.elliot.ai/api/v1/account?by=index&value=$LIGHTER_ACCOUNT_INDEX"
Getting Your Account Index
See "Setting Up Your Credentials" table above for the quick curl command.
Getting an API Key
See "Setting Up Your Credentials" table above for the step-by-step guide.
Common Issues
"Restricted jurisdiction":
- Lighter has geographic restrictions - ensure compliance with their terms
SDK signing issues:
- Use create_market_order() instead of create_order() for more reliable execution
Market IDs
| ID | Symbol |
|---|---|
| 1 | ETH-USD |
| 2 | BTC-USD |
| 3 | SOL-USD |
Links
- API: https://mainnet.zklighter.elliot.ai
- Dashboard: https://dashboard.zklighter.io
- SDK: https://github.com/elliottech/lighter-python
Additional Examples
See USAGE.md in this skill folder for:
- Detailed curl commands for all endpoints
- Order book and trade queries
- Account and position checks
- Signed transaction flow (nonce → sign → broadcast)
Disclaimer: Review all external code before running. Use dedicated wallets for trading.