NautilusTrader 2.0.0rc5
Released on 15th September 2026 (UTC).
Enhancements
- Added
client_idandendpointfilters to actorsubscribe_socket_state - Added a
channelfilter to actorsubscribe_queue_state - Added
HttpClient::get_streamandHttpResponseStreamfor HTTP bodies consumed without full buffering - Added
publish_message(...),subscribe_topic(...), andunsubscribe_topic(...)for PythonDataActor,Strategy, andExecutionAlgorithm - Added
CacheAPIs and Redis/PostgreSQL persistence forInstrumentClosedata - Added
avg_pxand report window fields to persisted execution reports - Added optional
BinaryOption.event_idwith Python and Arrow support - Added a
causation_idproperty to every order event, and aprotection_priceproperty toOrderUpdated - Added
due_post_onlyto theOrderRejectedconstructor, defaulting tofalse - Added remote resolution for
TestDataProviderCSV loaders so they work from an installed wheel - Added user-defined portfolio statistics via
Portfolio.register_statistic()and PythonPortfolioStatistic - Added rolling
ZScoreindicator for Rust and Python (#4868), thanks @graceyangfan - Added named task identity and lifecycle observation to live
TaskGroup - Added typed external MessageBus streaming for control, execution, and reconciliation messages
- Added public
ExecutionEventEmitter.try_send_account_state(...)(#4907), thanks @folknor - Added cache-backed claims that route external orders, fills, and reconciliation activity to the strategy
- Added inbound latency modeling to sandbox execution client (#4865), thanks @ChrisAB
- Added
SubscribeOptionChain.correlation_idandUnsubscribeOptionChain.paramsfor tracking edits across client routes - Added
UnixNanos::saturating_duration_sincefor non-negative time differences - Added
BacktestEngine::add_data_batchfor typed data batches that replay without per-itemDatavalues, thanks @faysou - Added Python enum surface (
from_str,name,value,variants) toBarIntervalType - Added Python component direct messaging preserving objects across synchronous topic publication
- Added Python
OrderBook.to_deltas(...)andOrderBook.get_all_crossed_levels(...) - Added Python
OrderBookpickle and deep-copy support andBookLevelcomparisons - Added Python
OrderBookDelta.is_add,is_update,is_delete,is_clear, andOrderBookDeltas.is_snapshot - Added Python
activation_utcandexpiration_utcproperties to expiring instruments - Added Python
symbolandvenueproperties to regular and synthetic instruments - Added Python bindings for subscription, execution, and historical data messages
- Added Cap'n Proto serialization for all instrument types and
InstrumentAny - Added Binance USD-M Futures RPI order support (#4927), thanks @AlphaTraderK
- Added Binance USD-M weekly delivery contract support
- Added Bybit self-match prevention, set with
smp_typeon the execution client config or per order - Added Hyperliquid definite rejection events for submit, modify, and cancel command paths
- Added Hyperliquid local denial of over-decimal order prices when
normalize_pricesis disabled - Added Kraken Futures
makerProtectionMillisdecoding for Maker Protection markets - Added Kraken execution
max_retriesconfiguration (#4902), thanks @folknor - Added OKX raw HTTP account configuration queries (#4943), thanks @silarin
- Added OKX USD-to-USDC spot migration support with
spot_trade_quote_ccyandactivate_feature - Added OKX
smart_icebergalgo order type andauto_conversionorder category decoding - Added Polymarket collateral-sized limit BUY orders with exact limit price preservation
- Added Polymarket Deposit Wallet split, merge, and redeem position operations
- Added Polymarket limit order modification support
- Added Polymarket parent event IDs and raw Gamma market and event metadata
- Added Polymarket resolution subscriptions for data-only clients (#4895), thanks @mystic-io
Breaking Changes
- Removed Rust
ResponseandReqwestErrorexports fromnautilus_network::http - Removed
InnerHttpClient::to_responseandfrom_reqwesterror conversions; useHttpClientError - Added the required Rust
Instrument::infomethod; custom implementations must return their metadata orNone - Removed Coinbase
CreateOrderRequest.reduce_only; reduce-only orders are rejected before submission - Removed the dormant
PortfolioStatistic::calculate_from_orderstrait method; no analyzer supplied order data to statistics - Removed public Rust and Python
ForwardPriceAPIs; option chains now fetch reference prices internally - Removed the unused OKX enums
OKXAccountModeandOKXTakeProfitKind, which mapped no venue field - Replaced
RetryManager.execute_with_retry*methods withinvocation(...).execute().await - Replaced the Rust
DurationNanosu64alias with a newtype; use constructors and accessors - Replaced
OKXHttpError::JsonErrorand generic HTTP errors with typed transport and response failures - Renamed
nautilus-serializationCargo featuredisplaytoarrow-display - Renamed blockchain log parsing modules to
hypersync::logandrpc::log; update Rust imports - Renamed Cargo binary targets to kebab-case, including
to_jsontoto-json,to_parquettoto-parquet, andnode_wallettonode-wallet; update anycargo run --bininvocation to the new name - Renamed Rust
Data::Delta,Data::Deltas, andData::Depth10variants toData::BookDelta,Data::BookDeltas, andData::BookDepth10; JSON and SBE wire formats are unchanged - Renamed
StrategyConfig.external_order_claimstoexternal_order_instrument_ids; useStrategy.set_external_order_instrument_ids()after registration to replace active claims - Changed actor state subscription signatures; pass filters before
priority, or usepriority=in Python - Changed Rust state unsubscribe methods to require filters; pass
Nonefor unfiltered subscriptions - Changed
QueueStateChangedandSocketStateChangedtopics; use actor filters or switchboard patterns - Changed Rust
ExecutionClientFactory::createto require the node's clock after the cache argument - Changed Rust mixed-scale addition/subtraction to panic; use
checked_add/checked_subfor fallible handling - Changed Rust
BinaryOptionconstructors to require anevent_idargument; passNonewhen unknown - Changed
OrderCanceled::newto require an optional cancellation reason (#4903), thanks @folknor - Changed FFI
orderbook_deltas_is_snapshotto useF_SNAPSHOTinstead of the first delta action - Changed
PortfolioAnalyzer.realized_pnls()to return records in ascending event-time order rather than position-derived records followed by recorded ones - Changed registered PnL statistics to run on every analyzed currency, including runs that closed no trades, where they receive an empty list;
Win Rateand its peers now report NaN for such runs rather than being absent - Changed OKX response decoding failures in Python from
ValueErrortoRuntimeError - Changed
TradingStatetoACTIVE=1,REDUCING=2, andHALTED=3; update numeric and Cap'n Proto consumers - Changed
REDUCINGto allow only eligible reduce-only submissions, cancellations, and queries - Changed execution clients to reject
reduce_onlywithout an enforcing venue instruction (#4761), thanks @folknor - Changed backtest and sandbox venues to reject reduce-only orders when
use_reduce_only=false - Changed PostgreSQL instrument storage to preserve
info; runnautilus database initto add the column before starting the cache - Changed PostgreSQL cache startup to require the
instrument_closetable; runnautilus database init - Changed PostgreSQL
order_eventandposition_eventtables to carry the order event fields that were previously dropped; runnautilus database initto add the columns, as cache startup now fails fast when they are missing.OrderReleasedandOrderFillVoidedrows written before the upgrade cannot be restored, because theirreleased_priceandcorrection_idwere never stored; delete those rows if startup reports them - Changed Binance Futures book subscriptions to reject depth changes until unsubscribed
- Changed Binance Spot JSON book subscriptions to reject unsupported explicit depths; use 5, 10, or 20
- Changed Binance
close_positionorders to requirereduce_only=truein Nautilus - Changed Arrow instrument
asset_classandoption_kindcolumns to the canonical enum labels such asEQUITYandCALL; existing catalogs still decode, but earlier versions cannot read newly written files - Changed
OrderStatus::is_open()to exclude the in-flightSUBMITTEDstate; useOrderStatus::is_inflight()when a pending venue request must also match - Changed Python-controlled allocation sizes to reject values above documented limits; reduce existing oversized configurations before upgrading
Security
- Added a committed Cargo cooldown publication-date database for offline crate-age checks
- Added zeroizing secret storage and consistent credential redaction across adapter configuration, signing, and transport paths
- Fixed DeFi fixed-point arithmetic and comparison errors in model types, thanks for reporting @uziii2208
Fixes
- Fixed managed GTD expiry after cancel rejections (#4974), thanks @folknor
- Fixed cancel rejections being dropped when order acceptance arrives first
- Fixed Python
MessageBus.publish()reentry from subscribers and listeners, and external serialization reentry - Fixed live node builders losing client registrations after a failed build
- Fixed Python live node cleanup masking run errors and skipping signal handler restoration after a cleanup failure
- Fixed
Moneyordering panics for mixed currencies, thanks for reporting @folknor - Fixed sell-balance checks when order quantities and account balances use different fixed-point scales
- Fixed
LiveTimersuccessor and time bar interval overflows causing runtime panics - Fixed spurious data command errors on
LiveNodedisposal (#4979), thanks for reporting @luk911 - Fixed
AroonOscillatoroldest-low scans and tied extremes (#4914), thanks @haeganm - Fixed WMA and HMA accepting periods above 8192 (#4887), thanks @pucedoteth
- Fixed
SortinoRatiofor single-day return samples (#4934), thanks @raunak2007 - Fixed
ZScorerounding for constant windows and handling of non-finite dispersion - Fixed
BollingerBandsquote and trade outputs to use actual price units - Fixed engine panic on startup when the PostgreSQL cache held an
OrderCanceled,OrderDenied,OrderEmulated,OrderExpired,OrderPendingCancel,OrderPendingUpdate,OrderRejected,OrderReleased,OrderTriggered, orOrderUpdatedevent (#4917), thanks for reporting @luk911 - Fixed PostgreSQL general cache writes failing on existing keys (#4935), thanks @raunak2007
- Fixed PostgreSQL cache load failing on a persisted
OrderFillVoidedevent - Fixed
reconciliationbeing persisted asfalsefor every order event that carries the flag, so reconciled orders no longer restore as though they were not reconciled - Fixed
OrderUpdated.to_dict()droppingprotection_price, which made the dictionary round trip lossy and lost the calculated protection price of a restored order - Fixed
released_price,due_post_only,protection_price,causation_id,correction_id,is_reopened, and fillinfobeing dropped when an order event was persisted to PostgreSQL - Fixed cancellation reasons being dropped from
OrderCanceledevents (#4903), thanks @folknor - Fixed partial fills after hedging position flips being rejected (#4908), thanks @folknor
- Fixed position close averages carrying the prior episode's state across reversal fills (#4967), thanks @folknor
- Fixed NETTING reduce-only fills against
EXTERNALpositions (#4975), thanks for reporting @qu1zzyboy - Fixed reconciliation races between terminal order reports and streamed fills
- Fixed cached fill echoes aborting live order reconciliation before later fills and snapshot corrections
- Fixed live position reconciliation clearing deferred retry counters during another position's fallback
- Fixed zero-sized fills panicking or affecting execution reconciliation (#4957), thanks for reporting @Karrenbelt
- Fixed position commissions and realized PnL after fill-void replay
- Fixed OTO exit sizing for commission-adjusted positions, child size increments, and minimum quantities
- Fixed deferred order updates and fills using stale state in backtest and sandbox matching
- Fixed backtest option expiry before same-timestamp index updates (#4966), thanks for reporting @davidsblom
- Fixed canceled OCO orders filling and OTO orders activating before their parent fills
- Fixed execution algorithm spawn reductions being lost when spawned children cancel or expire (#4968), thanks @folknor
- Fixed market-to-limit remainder prices and maker classification
- Fixed L2/L3
LastPricestop triggers and maintenance when trade execution is disabled - Fixed backtest order queue positions being lost across order book snapshots (#4942), thanks @cuishuang
- Fixed backtest reduce-only resizing and cancellation propagation to linked OUO orders
- Fixed cash account locked balances after partial order fills
- Fixed cash account backtests accepting futures contracts, thanks for reporting @folknor
- Fixed false reconciliation errors for uncached hedge positions reporting zero quantity
- Fixed SBE market data decoding panics for malformed instrument and trade identifiers
- Fixed nanosecond precision loss when
TestDataProviderparses timestamps - Fixed
BacktestNode.run_streaming()loading all records when more than one data config was used (#4897), thanks @abhijeetvichare76 - Fixed backtest client hiding warnings for unsupported data requests (#4945), thanks @matvt-cell
- Fixed stale or terminal single and list order submissions reaching execution clients
- Fixed TWD, 1INCH, CAKE, and SHIB currency lookup panics
- Fixed retiring
DataActor,Strategy, andExecutionAlgorithminstances retaining active or pending data subscriptions - Fixed shared client subscriptions being released before their final owner
- Fixed failed data subscriptions blocking later owners from retrying
- Fixed successful component resets retaining old data subscriptions before restart
- Fixed component removal failing after its stop or fault hook returned an error
- Fixed order-status report windows filtering resting orders instead of closed history
- Fixed foreign account events panicking and reservation failures leaving balances or margins in an inconsistent state
- Fixed importable strategy configs ignoring a string
strategy_idin favor of the class-derived default ID - Fixed importable config construction leaving a partial config on attribute failure; now raises
RuntimeError - Fixed Python
OrderBookaggregation to raiseValueErrorfor invalid precision and quantity overflow - Fixed Python
PriceandQuantityfrom_mantissa_exponentmethods to raiseValueErroron invalid inputs - Fixed Python
Money.zeroaborting for valid currencies with 17 or 18 decimal precision - Fixed Architect AX closed-order tracking cache retention and undocumented orders-WS heartbeat frames
- Fixed Betfair fill report queries ignoring instrument and order filters
- Fixed Betfair order status queries ignoring instrument filters and time bounds for closed orders
- Fixed Binance Futures order books exceeding requested depths of 5, 10, or 20 levels, thanks for reporting @xsidorov
- Fixed Binance Spot cancel-all decoding and lifecycle handling for OCO order lists
- Fixed Binance Spot cancel report matching and failed cancel-replace recovery (#4930), thanks @abhijeetvichare76
- Fixed Binance execution rejection classification and bounded HTTP read retries
- Fixed Binance Spot
MIN_NOTIONALandNOTIONALfilters being omitted from instrument constraints - Fixed Binance Spot book subscriptions accepting depths outside 5, 10, or 20 levels
- Fixed Binance Spot SBE order decoders misreading fields and timestamps (#4965), thanks @abhijeetvichare76
- Fixed Binance Spot SBE new-order-full decoder accepting short blocks (#4972), thanks @abhijeetvichare76
- Fixed Binance USD-M CN equity perpetuals being rejected from the instrument catalog (#4980), thanks @graceyangfan
- Fixed Binance
taker_sell_base_volumereturning incorrectly scaled values - Fixed Bybit funding settlements being treated as fills (#4937), thanks for reporting @luk911
- Fixed Bybit incorrect book quotes and zero sizes from deleted levels, thanks for reporting @xsidorov
- Fixed Bybit quote and book cleanup after unsubscribe or subscription failure, thanks for reporting @xsidorov
- Fixed Bybit REST and WebSocket executions dropping split-settlement, dividend, and unrecognized exec types
- Fixed Bybit decoding of
RPITIF,FUNDaccounts, and extra V5 create, cancel, and status enums - Fixed Derive accepting trade amounts that convert to zero-sized fills
- Fixed Derive order queries without venue order IDs (#4958), thanks for reporting @Aviksaikat
- Fixed Hyperliquid shared REST quotas and WebSocket rate and capacity limits
- Fixed Hyperliquid WebSocket post deadlines across queueing, transport writes, and replies
- Fixed Hyperliquid reconciliation to fail closed on undecodable mass-status rows
- Fixed Hyperliquid quote-denominated orders submitting quote amounts as base sizes
- Fixed Hyperliquid instrument refresh so newly listed markets can trade without restart (#4969), thanks @riven314
- Fixed Kraken Futures silently returning partial catalogs when instrument precision is unsupported
- Fixed Kraken Futures order-state convergence for unreported open orders and partial-fill cancels
- Fixed Kraken Futures
iocWouldNotExecuteorder outcomes staying ambiguous instead of rejecting - Fixed Kraken Spot available balances excluding funds held by the venue (#4922), thanks @zhaow-de
- Fixed Kraken Spot instrument fees to use account rates when credentials are configured (#4890), thanks @matvt-cell
- Fixed Lighter post-only GTD recovery and account-wide cancellation during flattening
- Fixed OKX mass status succeeding with incomplete pending algo-order coverage (#4924), thanks @silarin
- Fixed OKX retries to honor
Retry-After, preserve request identity, and avoid ambiguous order replay - Fixed OKX execution connecting with missing instruments for a configured type or family
- Fixed OKX WebSocket connection timeout being shorter than the network default (#4956), thanks for reporting @BioxMech
- Fixed OKX book recovery after reconnect, rejected subscriptions, and missing snapshots
- Fixed OKX private WebSocket re-authentication after reconnect
- Fixed OKX reconnect subscriptions exceeding the venue message size
- Fixed OKX option order price type deserialization to the
pxUsdandpxVolwire values - Fixed OKX depth-400 book channel gating from VIP5 to VIP4 per current venue requirements
- Fixed Polymarket resolution subscriptions losing transiently unavailable closed markets
- Fixed Polymarket precision loss in financial data and execution reports
- Fixed Polymarket invalid numeric values silently producing zero prices, quantities, or fees
- Fixed Polymarket free balances ignoring open BUY orders (#4940), thanks @yashwardhan-gautam
Internal Improvements
- Added Cap'n Proto validation for decoded identifiers, currencies, balances, and decimals
- Added serde support for
BetSideandOtoTriggerMode - Added crate feature documentation checks for README and Rustdoc lists
- Added early Cargo dependency cooldown checks to builds and pre-flight
- Added Cargo convention checks for redundant README keys, uninherited workspace fields, and binary target naming
- Added Rust client bridges for custom Python data and execution adapters
- Added experimental executable component bindings for plug-ins
- Added acceptance tests running the documentation guides and resolving their documented imports
- Added deterministic simulation testing (DST) transports for HTTP and WebSocket I/O
- Replaced Reqwest HTTP execution with Hyper and removed direct Reqwest dependencies
- Improved contingent order handling to respect venue receipt in backtest and sandbox execution
- Improved Betfair execution client test synchronization (#4866), thanks @folknor
- Improved task lifecycle tests to avoid stalled timer polling (#4899), thanks @folknor
- Improved Hyperliquid exchange error message fixtures and rejection routing tests
- Improved OKX RPI minimum-notional rejection tests for place, amend, and batch orders
- Pinned docs.rs checks to a compatible nightly toolchain
- Refined Arrow serialization schemas and column resolution
- Refined Cap'n Proto serialization conversions and wire contracts
- Refined bar aggregation internals and shared aggregator state
- Refined core crate coverage, FFI safety, and collection conversion
- Refined example and test config subclasses to keyword-only fields without a
__new__override - Refined
PortfolioAnalyzerPnL currency resolution into a single internal resolver - Standardized crate manifests with inferred README paths and removed unused workspace fields
- Standardized crate feature documentation across READMEs and Rustdoc
- Standardized adapter client source layout across the Rust venue implementations
- Standardized code and documentation terminology with domain-specific names
- Removed obsolete OKX
speed_bumporder parameters; omit the argument from Rust and Python client calls - Optimized pre-commit and CI convention hook runtime
- Optimized Rust integration test compilation with one test binary per crate, thanks @faysou
- Optimized DataEngine and backtest dispatch through borrowed data views (#4900), thanks @faysou
- Standardized repository Python text reads on UTF-8 across supported platforms
- Standardized uv commands, CI, Docker, and documentation on the default
python/.venvproject environment - Upgraded Rust (MSRV) to 1.98.1
- Upgraded
cargo-hawktool to v0.1.14 - Upgraded
cargo-llvm-covtool to v0.9.1 - Upgraded
cargo-nextesttool to v0.9.144 - Upgraded
prektool to v0.5.2 - Upgraded
shfmtpre-commit hook to v3.14.1 - Upgraded
uvtool to v0.12.13 - Upgraded
typospre-commit hook to v1.50.1 - Upgraded
zizmorpre-commit hook to v1.30.1 - Upgraded
alloy-primitivescrate to v1.7.3 - Upgraded
flate2crate to v1.1.10 - Upgraded
indexmapcrate to v2.14.2 - Upgraded
rcgencrate to v0.14.10 - Upgraded
arrow,arrow-row, andparquetcrates to v59.3.0 - Upgraded
aws-lc-rscrate to v1.18.1 - Upgraded
capnpcrate to v0.27.2 - Upgraded
databentocrate to v0.61.0 - Upgraded
hypersync-clientcrate to v1.4.1 - Upgraded
rediscrate to v1.7.0 - Upgraded
rstestcrate to v0.27.0 - Upgraded
rust_decimalcrate to v1.43.0 - Upgraded
rustlscrate to v0.23.45 (fixes RUSTSEC-2026-0285) - Upgraded
smallveccrate to v1.16.0 - Upgraded
tabledcrate to v0.22.0 - Upgraded
tokio-rustlscrate to v0.26.5 - Upgraded
tomlcrate to v1.1.6 - Upgraded
uuidcrate to v1.26.1 - Upgraded
kaleidopackage to v1.4.0 - Upgraded
linkify-it-pypackage to v2.2.0 - Upgraded
numpypackage to v2.5.3 - Upgraded
plotlypackage to v7.0.0 - Upgraded
ruffpackage (dev) and pre-commit hook to v0.16.7 - Upgraded
simplejsonpackage to v4.1.2 - Upgraded
typackage (dev) to v0.0.78
Documentation Updates
- Added Cargo cooldown publication-date database guidance to the environment setup guide
- Added a troubleshooting section for import errors caused by installing the 1.x line
- Added the NumPy and pandas prerequisites the wheel does not install
- Added an environment report snippet to the bug report template
- Added an explicit statement that the documentation covers v2 only
- Added Kraken Futures Maker Protection held-order semantics to the integration guide
- Added OKX RPI minimum-notional thresholds and amend rejection rules
- Added OKX USD-to-USDC spot migration guidance for
spot_trade_quote_ccyandactivate_feature - Changed install commands to require
--prefor the v2 wheel (#4919), thanks for reporting @pcoughlin - Changed the getting started and tutorial guides to run on bundled sample data without a download
- Simplified documented
StrategyConfigandDataActorConfigsubclassing to keyword-only fields - Updated execution event sender installation guidance (#4906), thanks @folknor
- Updated persistence catalog migration commands to kebab-case binary names
- Updated migration guidance for order books and instrument inspection
- Updated Makefile help output to match the startup log header
- Updated managed GTD expiry guidance for cancel rejections, retries, and callback timing
- Updated Bybit risk-events docs for split-settlement, dividend, and unrecognized exec types
- Updated Hyperliquid guide for rejection events, price guard, and trigger-order resting
- Updated Hyperliquid guide for quote-denominated quantities and orders-section scanning
- Restructured execution documentation around algorithms, policies, reconciliation, and live recovery
- Standardized Rust documentation links and added offline link coverage
- Standardized admonition severity levels to match the documented taxonomy
- Fixed the actor configuration example rejecting a positional argument
- Fixed option Greeks examples ignoring string
actor_idoverrides - Corrected documented enum values for instrument classes, wallet accounts, position entry sides, and Polymarket close types
Deprecations
Artifact checksums
SHA256 checksums are attached as SHA256SUMS, per-asset .sha256 files, and dist-manifest.json.
| Artifact | SHA256 |
|---|---|
| nautilus_trader-2.0.0rc5-cp312-cp312-macosx_11_0_arm64.whl | c3feca068a507b1651ed8e9d0ee81d10a3520a2e3b37eccbe88cba3487b4e652 |
| nautilus_trader-2.0.0rc5-cp312-cp312-manylinux_2_34_aarch64.whl | d68fcd0938449c0b8cce412dc4ac806072272d627baa19ef87393f25077e5432 |
| nautilus_trader-2.0.0rc5-cp312-cp312-manylinux_2_34_x86_64.whl | eab45fafd2312deda1236554c49a9798bfc76bc8465af864878e2f70189ebebe |
| nautilus_trader-2.0.0rc5-cp312-cp312-win_amd64.whl | 7cf55f842ebcc47b4ccd6c7c2ba855e7359941d9eb87da44c7fdd1d17108165f |
| nautilus_trader-2.0.0rc5-cp313-cp313-macosx_11_0_arm64.whl | af9d9dffc729ab7f2e042a59772c3234ac6bcbb413a46b5b94c203e07b1fe6be |
| nautilus_trader-2.0.0rc5-cp313-cp313-manylinux_2_34_aarch64.whl | 9905300762f2cdb094d2bc13a51f3860ffaafb499237088daf9f294290a86c10 |
| nautilus_trader-2.0.0rc5-cp313-cp313-manylinux_2_34_x86_64.whl | d022032fdb6727ff97cce2618870ac0997e15fcf4df4e285a34278088dd781b6 |
| nautilus_trader-2.0.0rc5-cp313-cp313-win_amd64.whl | 0a2aa776f5abba97989069e6a4a8fe9041210c35c333fce07dee75811e2c2022 |
| nautilus_trader-2.0.0rc5-cp314-cp314-macosx_11_0_arm64.whl | 4c68beff00930f706decf15b5fda650bbcaee45d0f31c72e4e34a97d9c41b157 |
| nautilus_trader-2.0.0rc5-cp314-cp314-manylinux_2_34_aarch64.whl | 450f158b45d1487252a0a29899e7b1ba32a9935e45b83e35b80562dac08eda71 |
| nautilus_trader-2.0.0rc5-cp314-cp314-manylinux_2_34_x86_64.whl | 1cd460c7baa56a37b4e23b56f5d3fdfb46113e4206380a488f709f8efd5c0cdb |
| nautilus_trader-2.0.0rc5-cp314-cp314-win_amd64.whl | 6c9d9564348f8ae26d12a6f7c9a8665aba9c3d04fbac13b396864da384462ba6 |
| nautilus_trader-2.0.0rc5.tar.gz | d566bade9e8dc6ad35de0e2566658fbd1ae75a89ee2c45c8e48de5fcc6929399 |
Verify provenance
After downloading an artifact, verify its GitHub artifact attestation:
gh attestation verify <artifact> \
--repo nautechsystems/nautilus_trader \
--cert-identity "https://github.com/nautechsystems/nautilus_trader/.github/workflows/build.yml@refs/heads/master" \
--cert-oidc-issuer https://token.actions.githubusercontent.com