Lighter API/MM Updates
1.02K subscribers
1 photo
1 video
78 links
Official Channel for API and Market-maker updates on Lighter
Download Telegram
We’re delisting $Ai16z and will settle all open positions at mark price on November 4, 2025 at 7:00 PM UTC. Please review and manage your positions in that market.
We'll deploy the following modifications for Premium Accounts on November 4, 2025 at 1:00 PM UTC:

- We’ll be updating the Premium Account Tx rate limit. Premium accounts will earn 1 Tx per $5 in trading volume (previously 1 Tx per $1). Tx accumulation will pause once an account reaches 5,000,000 Tx
- Endpoints will directly return your remaining transaction allowance. WS sendTx and sendBatchTx will also return the remaining volume quota
We’re doing a network upgrade on November 6, 2025 at 2:15 PM UTC (in 45 mins). The system will be back online before market open.
1
Updates:

- Added nonce field on order_book WebSocket channel that directly align with the matching engine state. (Premium Only)
- Added volume_quota_remaining field on both WebSocket and API response of /sendTx and /sendBatchTx. You can directly track you remaining quota from that numeric field
👍3
Update:

We’ll retire the ‘transaction’ and ‘executed_transaction’ WebSocket channels on Tuesday, November 11 at 3 PM UTC
Update:

You can now match your client_order_id on trades using the ask_client_id or bid_client_id fields.
3
We're doing a network upgrade on November 13, 2025 at 9:30 PM UTC. Downtime should be under 10 minutes. Manage your positions in advance, orders will not get placed.
👍3
Update:

Premium Accounts will earn 1 Tx per $10 in trading volume (previously 1 Tx per $5). Tx accumulation still pauses once an account reaches 5,000,000 Tx.
Email and JSON subscription to maintenance updates:

https://status.lighter.xyz/
5
Updates:

We are deprecating the accountTxs (REST) endpoint as it is not heavily used. This will happen on November 20, 2025 at 4:30 PM UTC

You can use the Block Explorer to fetch account logs. This is the endpoint: https://explorer.elliot.ai/api/accounts/%7BaccountID%7D/logs?pub_data_type=&limit=20&offset=0
4
We're doing a network upgrade on November 23, 2025 at 12:00 PM UTC. Downtime should be under 15 minutes. Manage your positions in advance, orders will not get placed during downtime.
Added Lighter Explorer API endpoints section in the API reference docs

https://apidocs.lighter.xyz/reference

There are different rate limits that apply to these endpoints: https://apidocs.lighter.xyz/docs/rate-limits#-explorer-rest-api-endpoint-limits
3👍1
We will prune old transactions and orders on Tuesday at 9:00 AM UTC.

Items older than 3 months (and certain unfilled canceled/expired orders older than 3 days) will be removed.
We're doing a network upgrade on Sunday November 30th at 12PM UTC. Downtime should be under 15 minutes. Manage your positions in advance, orders will not get placed during downtime.
Update:

We've just merged some breaking changes for the Python SDK.
As you might have noticed, the GO SDK was updated a while ago, changing the interface.
Major changes on that side include:
each sign operation returns the TxType, TxInfo & TxHash
each sign operation receives two new arguments: account_index & api_key_index
These changes allow the Python SDK to support multiple accounts & API keys easier.

Changes have been made to the Python SDK to accommodate the changes, as well as updated examples.
Now, both the examples and the SignerClient use multiple API keys by default.
Note that the SignerClient is tied to one account index. You can create multiple instances of SignerClient.
The shared library is designed as a singleton so that there will be just one instance of it, so it's loaded just once.

You can instance a SignerClient as follows:

client = lighter.SignerClient(
url="https://mainnet.zklighter.elliot.ai",
account_index=...,
api_private_keys={
3: "c180...",
4: "ef13...",
...
}
)


HTTP calls should not be affected by these changes.

For WS operations, which use sign_create_order for example, directly, you'll need to update the list of returned values.
Each sign_ operation returns a tuple of (TxType, TxInfo, TxHash, error).
On how to use these values to send the transaction, please refer to the ./examples/create_modify_cancel_order_ws.py.
It includes example on nonce management and sending the transactions.
Specifically for WS operations, the fact that you have access to the TxHash might allow you to track your transaction easier, in an async way.
4
Lighter API/MM Updates
Update: We've just merged some breaking changes for the Python SDK. As you might have noticed, the GO SDK was updated a while ago, changing the interface. Major changes on that side include: each sign operation returns the TxType, TxInfo & TxHash each sign…
On the spot side of things, there's an open PR with some changes on the Lighter Go.
It includes precompiled binaries if you want to use it stand alone.
The major changes there include changing the marketId from uint8 to int16 and significant changes to Transfer and Withdraw.

You should be able to use an old Python SDK to trade perpetual markets on testnet right now, with no problems.
All HTTP/WS endpoints are backward compatible.


We've postponed the launch of the Python SDK as we're trying to polish the HTTP / WS endpoints as much as possible.
I'll create a PR shortly with examples specific for spot, including:
- getting all order books
- getting the amount of assets owned by an address
- transferring USDC between perp <> spot account
- receiving WS updates on asset changes due to trades / placed orders

Placing orders has not changed. Spot market ids start from 2048. All order-related endpoints are the same.
👍5
Update:

We are deprecating /txs endpoint at 2PM UTC December 3.

You can utilize these Block Explorer endpoints to fetch transactions:
https://apidocs.lighter.xyz/reference/get_accounts-param-logs#/
https://apidocs.lighter.xyz/reference/get_logs-hash#/
👍31
We're doing a network upgrade on December 4, 2025 at 12:00 PM UTC. Downtime should be under 20 minutes. Manage your positions in advance, orders will not get placed during downtime.
As spot was just launched, the spot Python SDK PR has been merged.
Now you test spot SDK directly on mainnet. The PIP release will be available in ~2H.

Notable changes since last message:
- added pool examples, on how to get / burn / mint pool shares
- added example on how to create a public pool
- system_setup example takes an optional ACCOUNT_INDEX field, which, if set, can be used to setup a sub account or pool
- added a lot of details about pools / transfers in ./examples/README.md
- added example of fast & normal withdraw -- thanks @zen for all PRs with examples
- fixed memo usage in go-sdk -- now fast withdrawals can just call sign_transfer and pass the memo, hex encoded

If you have any questions in regard to transfers, how to send money from spot <> perp or vice versa, to sub accounts, to other people, check out the README.
If it's not covering everything, we'll update it accordingly. All these changes / notes will be reflected in the public docs soon.

As a reminder, old SDKs can still trade perpetual markets. What will not work are transfers and withdrawals using the SDK. If you were relaying on those, please upgrade to the new SDK.
👍1