Leveraged perpetual trading powered by Jupiter's liquidity
Stream every Jupiter Perpetuals interaction. Position opens, closes, and updates, liquidations, funding rate changes, and pool operations. 59 decoded streams for Solana's largest perpetuals platform.
PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJuDecoded, typed, delivered. No parsing, no delays.
Every on-chain instruction parsed into typed fields. Accounts, arguments, and metadata, ready to use.
Program events (logs) decoded into structured data. No log parsing, no regex, just typed fields.
Events arrive at your app within 50 milliseconds of on-chain confirmation. Fast enough for trading.
Choose JSON for easy debugging or Protobuf for maximum performance. Same data, your choice of format.
We handle the IDL. You get clean, decoded data. No anchor, no borsh, no manual deserialization.
JavaScript, Python, Rust, Go. Any language with gRPC support. Code examples included.
Click any stream to see its full schema, accounts, and code examples.
solana.jupiter_perpetuals.initsolana.jupiter_perpetuals.add_poolsolana.jupiter_perpetuals.add_custodysolana.jupiter_perpetuals.set_custody_configsolana.jupiter_perpetuals.set_pool_configsolana.jupiter_perpetuals.set_perpetuals_configsolana.jupiter_perpetuals.transfer_adminsolana.jupiter_perpetuals.withdraw_fees2solana.jupiter_perpetuals.create_token_metadatasolana.jupiter_perpetuals.create_token_ledgersolana.jupiter_perpetuals.realloc_custodysolana.jupiter_perpetuals.realloc_poolsolana.jupiter_perpetuals.create_and_delegate_stake_accountsolana.jupiter_perpetuals.unstakesolana.jupiter_perpetuals.withdraw_stakesolana.jupiter_perpetuals.redeem_stakesolana.jupiter_perpetuals.operator_set_custody_configsolana.jupiter_perpetuals.operator_set_pool_configsolana.jupiter_perpetuals.test_initsolana.jupiter_perpetuals.set_test_timesolana.jupiter_perpetuals.set_token_ledgersolana.jupiter_perpetuals.swap2solana.jupiter_perpetuals.swap_with_token_ledgersolana.jupiter_perpetuals.instant_increase_position_pre_swapsolana.jupiter_perpetuals.add_liquidity2solana.jupiter_perpetuals.remove_liquidity2solana.jupiter_perpetuals.create_increase_position_market_requestsolana.jupiter_perpetuals.create_decrease_position_request2solana.jupiter_perpetuals.create_decrease_position_market_requestsolana.jupiter_perpetuals.update_decrease_position_request2solana.jupiter_perpetuals.close_position_request2solana.jupiter_perpetuals.close_position_request3solana.jupiter_perpetuals.increase_position4solana.jupiter_perpetuals.increase_position_pre_swapsolana.jupiter_perpetuals.increase_position_with_internal_swapsolana.jupiter_perpetuals.decrease_position4solana.jupiter_perpetuals.decrease_position_with_internal_swapsolana.jupiter_perpetuals.decrease_position_with_tpslsolana.jupiter_perpetuals.decrease_position_with_tpsl_and_internal_swapsolana.jupiter_perpetuals.liquidate_full_position4solana.jupiter_perpetuals.refresh_assets_under_managementsolana.jupiter_perpetuals.set_max_global_sizessolana.jupiter_perpetuals.instant_create_tpslsolana.jupiter_perpetuals.instant_create_limit_ordersolana.jupiter_perpetuals.instant_increase_positionsolana.jupiter_perpetuals.instant_decrease_positionsolana.jupiter_perpetuals.instant_decrease_position2solana.jupiter_perpetuals.instant_update_limit_ordersolana.jupiter_perpetuals.instant_update_tpslsolana.jupiter_perpetuals.get_add_liquidity_amount_and_fee2solana.jupiter_perpetuals.get_remove_liquidity_amount_and_fee2solana.jupiter_perpetuals.get_assets_under_management2solana.jupiter_perpetuals.borrow_from_custodysolana.jupiter_perpetuals.repay_to_custodysolana.jupiter_perpetuals.deposit_collateral_for_borrowssolana.jupiter_perpetuals.withdraw_collateral_for_borrowssolana.jupiter_perpetuals.liquidate_borrow_positionsolana.jupiter_perpetuals.partial_liquidate_borrow_positionsolana.jupiter_perpetuals.close_borrow_positionsubscribe to any Jupiter Perpetuals stream with a single command
grpcurl -plaintext \
-H 'x-eventstream-policy: {"version":1,"allowed_programs":"all","allowed_topics":"all"}' \
-d '{"topic":"solana.jupiter_perpetuals.init","format":"JSON"}' \
events.nln.clr3.org:443 \
nln.stream.v1.StreamService/Subscribeimport grpc, json
import stream_service_pb2 as pb
import stream_service_pb2_grpc as rpc
channel = grpc.insecure_channel('events.nln.clr3.org:443')
stub = rpc.StreamServiceStub(channel)
policy = json.dumps({"version": 1,
"allowed_programs": "all",
"allowed_topics": "all"})
for msg in stub.Subscribe(
pb.SubscribeRequest(
topic="solana.jupiter_perpetuals.init",
format=pb.OutputFormat.JSON),
metadata=[
('x-eventstream-policy', policy)]):
event = json.loads(msg.payload)
print(f"slot={msg.slot}", event)NoLimitNodes provides 59 decoded real-time streams for the Jupiter Perpetuals program on Solana (PERPHjGB...). Every instruction call and every emitted event is parsed, typed, and delivered to your app in under 50 milliseconds.
Instead of writing custom deserialization code, decoding Anchor IDLs, or parsing raw transaction logs, you subscribe to a topic like solana.jupiter_perpetuals.init and receive structured JSON or Protobuf data instantly. 59 instruction streams and 0 event streams cover every possible interaction with the Jupiter Perpetuals program.
Whether you are building trading bots, analytics dashboards, monitoring tools, or research pipelines, NoLimitNodes program streams give you the decoded on-chain data you need without the infrastructure overhead. Start with our free tier and scale to production.
Get your API key and subscribe to any of 59 decoded streams.