Lighter SDK
Perpetual and spot Market support for Lighter, built on
typed-lighter. Install with pip install tribulnation-lighter.
from tribulnation.lighter import LighterMarket
async with LighterMarket.new(public=True) as venue:
perp = await venue.perp_exchange('perp')
market = await perp.market('1') # BTC
book = await market.depth(levels=5)
Account and trading methods need an API key registered for the account:
venue = LighterMarket.new(account_index=476, api_key_index=4, api_private_key='0x…')
With no arguments, the client reads LIGHTER_ACCOUNT_INDEX, LIGHTER_API_KEY_INDEX and
LIGHTER_API_PRIVATE_KEY (LIGHTER_TESTNET_* with network='testnet'), else a
read-only LIGHTER_AUTH_TOKEN. A token (auth_token='ro:…') allows every read but no
trading. Without credentials, public=True with an account_index, or an address
whose master account is used, still reads positions, collateral, leverage and trade
history; fees, orders and funding payments need a token or an API key.
- Exchanges are
perpandspot. Market ids are the venue's numericmarket_id('0'ETH and'1'BTC perpetuals,'2048'ETH/USDC spot on mainnet): the ids orders are signed with. Symbols are API metadata only, and ids differ between networks. Asset ids are the venue'sasset_id('3'is USDC). - Public data: discovery, tickers, rules, REST depth (the top 250 orders per side,
summed per price), a shared full-book stream, candles in the six SDK intervals,
perpetual index,
perp_stats, next funding and hourly funding-rate history. - Account and trading: fees (the account's fee ticks, in parts per million), order
queries, open orders, trade history and streams with fees, positions, collateral,
available notional, funding payments,
MARKET,LIMITandPOST_ONLYorders, and every cancellation method. Order ids are client order indexes. - Perpetual fees, margin and funding are in USDC. Spot fees are charged in the asset a
fill delivers, so spot
rules().fee_assetisNoneand eachTrade.feenames it. - Perpetual collateral covers cross and isolated positions. Spot collateral supports
unified accounts only, and raises
NotImplementedErroron classic accounts.
Report snapshots every account (master and sub-accounts) of an L1 address, with no
credentials:
from tribulnation.lighter import Report
async with Report.new('0x…') as report:
record = await report.snapshot()
Each account is a <index> subaccount with its spot and margin balances, isolated
margin, and positions. Pool shares (public pools, the LLP, LIT staking) are
<index>:pool:<pool> subaccounts holding the pro-rata part of the pool's balances; an
operated pool contributes only the operator's shares. Report.new also takes the index
of any account instead, and looks up its address. Through ReportSDK, the account's
address (default LIGHTER_ADDRESS) is used when set, else its account_index, so a
MarketSDK account configuration works unchanged. history() is not supported.
See Lighter Market for account
configuration through MarketSDK and venue-specific semantics.
Funding payment signs
Since 0.4.0, funding payments are positive when received and negative when paid, for every supported history scope. Requires SDK >=2.10.0. Funding rates keep their existing signs. See migration notes before upgrading.
Metadata
Release files for tribulnation-lighter 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tribulnation_lighter-0.8.0.tar.gz | 24.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tribulnation_lighter-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.1 kB
Release files / tribulnation_lighter-0.8.0.tar.gz
| Download URL | tribulnation_lighter-0.8.0.tar.gz |
|---|---|
| Size | 24.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d9aedfe781ce29f3291cb7ca612f301b837d84c39884d9a410abd3b0628eaef9
|
|
BLAKE2b-256 checksum How to use checksums |
ddd5aafad2b3aa8b17e59e9e729607cf11b494d8bbb08c0b4e1c750407d3934d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / tribulnation_lighter-0.8.0-py3-none-any.whl
| Download URL | tribulnation_lighter-0.8.0-py3-none-any.whl |
|---|---|
| Size | 28.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a9612213f290e25251d79ff9f0a33ba31f55fcfb6ec8e45594e2a1c9798b9143
|
|
BLAKE2b-256 checksum How to use checksums |
7b4615ed823ef2e85c1115817dfa78ef034e6a8dc20cac192489fb87c2c9a297
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency log