The concentrated liquidity DEX for Solana's biggest pairs
Stream every Orca Whirlpool interaction. Swaps, position opens and closes, liquidity operations, reward harvests, and tick management. 72 decoded streams for the DEX that dominates SOL/USDC and large cap Solana trading.
whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCcDecoded, 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.orca_whirlpool.close_bundled_positionsolana.orca_whirlpool.close_positionsolana.orca_whirlpool.close_position_with_token_extensionssolana.orca_whirlpool.collect_feessolana.orca_whirlpool.collect_fees_v2solana.orca_whirlpool.collect_protocol_feessolana.orca_whirlpool.collect_protocol_fees_v2solana.orca_whirlpool.collect_rewardsolana.orca_whirlpool.collect_reward_v2solana.orca_whirlpool.decrease_liquiditysolana.orca_whirlpool.decrease_liquidity_v2solana.orca_whirlpool.delete_position_bundlesolana.orca_whirlpool.delete_token_badgesolana.orca_whirlpool.idl_includesolana.orca_whirlpool.increase_liquiditysolana.orca_whirlpool.increase_liquidity_by_token_amounts_v2solana.orca_whirlpool.increase_liquidity_v2solana.orca_whirlpool.initialize_adaptive_fee_tiersolana.orca_whirlpool.initialize_configsolana.orca_whirlpool.initialize_config_extensionsolana.orca_whirlpool.initialize_dynamic_tick_arraysolana.orca_whirlpool.initialize_fee_tiersolana.orca_whirlpool.initialize_poolsolana.orca_whirlpool.initialize_pool_v2solana.orca_whirlpool.initialize_pool_with_adaptive_feesolana.orca_whirlpool.initialize_position_bundlesolana.orca_whirlpool.initialize_position_bundle_with_metadatasolana.orca_whirlpool.initialize_rewardsolana.orca_whirlpool.initialize_reward_v2solana.orca_whirlpool.initialize_tick_arraysolana.orca_whirlpool.initialize_token_badgesolana.orca_whirlpool.lock_positionsolana.orca_whirlpool.migrate_repurpose_reward_authority_spacesolana.orca_whirlpool.open_bundled_positionsolana.orca_whirlpool.open_positionsolana.orca_whirlpool.open_position_with_metadatasolana.orca_whirlpool.open_position_with_token_extensionssolana.orca_whirlpool.reposition_liquidity_v2solana.orca_whirlpool.reset_position_rangesolana.orca_whirlpool.set_adaptive_fee_constantssolana.orca_whirlpool.set_collect_protocol_fees_authoritysolana.orca_whirlpool.set_config_extension_authoritysolana.orca_whirlpool.set_config_feature_flagsolana.orca_whirlpool.set_default_base_fee_ratesolana.orca_whirlpool.set_default_fee_ratesolana.orca_whirlpool.set_default_protocol_fee_ratesolana.orca_whirlpool.set_delegated_fee_authoritysolana.orca_whirlpool.set_fee_authoritysolana.orca_whirlpool.set_fee_ratesolana.orca_whirlpool.set_fee_rate_by_delegated_fee_authoritysolana.orca_whirlpool.set_initialize_pool_authoritysolana.orca_whirlpool.set_preset_adaptive_fee_constantssolana.orca_whirlpool.set_protocol_fee_ratesolana.orca_whirlpool.set_reward_authoritysolana.orca_whirlpool.set_reward_authority_by_super_authoritysolana.orca_whirlpool.set_reward_emissionssolana.orca_whirlpool.set_reward_emissions_super_authoritysolana.orca_whirlpool.set_reward_emissions_v2solana.orca_whirlpool.set_token_badge_attributesolana.orca_whirlpool.set_token_badge_authoritysolana.orca_whirlpool.swapsolana.orca_whirlpool.swap_v2solana.orca_whirlpool.transfer_locked_positionsolana.orca_whirlpool.two_hop_swapsolana.orca_whirlpool.two_hop_swap_v2solana.orca_whirlpool.update_fees_and_rewardssubscribe to any Orca Whirlpool stream with a single command
grpcurl -plaintext \
-H 'x-eventstream-policy: {"version":1,"allowed_programs":"all","allowed_topics":"all"}' \
-d '{"topic":"solana.orca_whirlpool.close_bundled_position","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.orca_whirlpool.close_bundled_position",
format=pb.OutputFormat.JSON),
metadata=[
('x-eventstream-policy', policy)]):
event = json.loads(msg.payload)
print(f"slot={msg.slot}", event)NoLimitNodes provides 72 decoded real-time streams for the Orca Whirlpool program on Solana (whirLbMi...). 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.orca_whirlpool.close_bundled_position and receive structured JSON or Protobuf data instantly. 66 instruction streams and 6 event streams cover every possible interaction with the Orca Whirlpool 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 72 decoded streams.