Report on today's disruption
We experienced a service disruption between 19:40 and 20:01 UTC today that affected API transactions. The issue has been resolved, and all systems are back to normal. During this time, the core exchange and committer continued operating as expected, but the API server was unable to process transactions properly.
Before markets became volatile, we noticed that roughly one-third of all transactions were coming from what appeared to be automated bots engaged in wash trading. Even in low-volatility periods, this suspicious activity was driving unusually high TPS and contributing to instability. Later on, the markets went down quickly during the disruption.
We take full responsibility for the incident. All affected transactions have now been processed, and LLP orders were not impacted.
What we are doing:
- We’re banning the identified bot accounts, revoking any associated points
- Reassessing our API volume quota and rate limit mechanisms to strengthen stability
- Putting in better retry logic in our API servers
- Making users whole with USDC compensations
If you were affected by this issue, please fill out the form provided. There’s no need to open a support ticket if it relates to this incident.
Form: https://forms.gle/cJ1Wsiqzd8Ve3p5Z8
We experienced a service disruption between 19:40 and 20:01 UTC today that affected API transactions. The issue has been resolved, and all systems are back to normal. During this time, the core exchange and committer continued operating as expected, but the API server was unable to process transactions properly.
Before markets became volatile, we noticed that roughly one-third of all transactions were coming from what appeared to be automated bots engaged in wash trading. Even in low-volatility periods, this suspicious activity was driving unusually high TPS and contributing to instability. Later on, the markets went down quickly during the disruption.
We take full responsibility for the incident. All affected transactions have now been processed, and LLP orders were not impacted.
What we are doing:
- We’re banning the identified bot accounts, revoking any associated points
- Reassessing our API volume quota and rate limit mechanisms to strengthen stability
- Putting in better retry logic in our API servers
- Making users whole with USDC compensations
If you were affected by this issue, please fill out the form provided. There’s no need to open a support ticket if it relates to this incident.
Form: https://forms.gle/cJ1Wsiqzd8Ve3p5Z8
We're doing a quick network upgrade on November 2nd at 11AM UTC. Downtime should be under 10 minutes. Manage your positions in advance.
👍4
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’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
- 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
We’ll retire the ‘transaction’ and ‘executed_transaction’ WebSocket channels on Tuesday, November 11 at 3 PM UTC
Update:
You can now match your
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.
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.
❤5
Updates:
We are deprecating the
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
We are deprecating the
accountTxs (REST) endpoint as it is not heavily used. This will happen on November 20, 2025 at 4:30 PM UTCYou 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
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.
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:
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.
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.
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
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#/
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#/
👍3❤1
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.