Skip to main content

Changelog

v19.0.0

devnet:
mainnet:

This release includes breaking changes to atomic actions as well as backend support for our upcoming RFQ feature.

  • BREAKING protobuf: Atomic V2 is removed. Action.atomic_v2, AtomicV2, AtomicSubactionV2, and AtomicPlacementRequest are no longer available. Regenerate your protobuf bindings and send Action.atomic.
    • Put each AtomicSubaction directly in Atomic.actions.
    • Replace delegator_account_id with target_account_id. (field number remains 32)
    • Move ReduceOrderLiquidation.target_account_id to its parent AtomicSubaction.
    • For self-targeted actions, omit target_account_id and use_key.
    • For vault actions, use vault_account_id as the target and set use_key = true.
    • For liquidation actions, use the liquidation account ID as the target and leave use_key unset or false.
  • BREAKING protobuf: VAULT_PREVIOUS_EPOCH_WITHDRAWALS_NOT_PAYABLE is removed from the Error enum.
  • protobuf: SpecialAccount now includes CLAIM_VAULT. VaultSyncEpochsReceipt now includes vault_account_id.
  • BREAKING ts: Atomic subactions now use targetAccountId and useKey. Remove delegatorAccountId and placement.
  • BREAKING ts: Use await nord.getProtonClient(). Direct access through nord.protonClient is no longer available. Proton initialization now starts on first use.
  • BREAKING api: GET /account/system now returns { actionId, feeVault, claimVault }. It previously returned the fee-vault balance array.
  • api: Trade and order history responses now include marketMode.
  • ws: Account fills keys now use orderId:makerId:rawPrice. Code that reads Object.values(fills) continues to work. Code that looks up fills by key must change.

nord-ts version: 0.7.3

v18.0.0

devnet:
mainnet:

  • BREAKING: api: GET /account/{account_id} now returns open-order clientOrderId as string | null instead of number | null.
  • BREAKING: api: WebSocket client_order_id, taker_client_order_id[], and deprecated sender_tracking_id values now serialize as numeric strings instead of numbers.
  • Added RefreshSession to allow a session to refresh itself up to some maximum deadline while maintaining the same session ID.
  • Added SelfRevoke to allow a session to revoke itself.
  • CreateSession now accepts an optional refresh_deadline parameter and returns the effective expiry and refresh deadline.
  • ts: NordUser.refreshSession() now returns { sessionId, expiry, refreshDeadline? } instead of void.
  • api: GET /user/{pubkey} session objects now include optional refreshDeadline.

nord-ts version: 0.7.0 to 0.7.2

v17.0.0

devnet:
mainnet:

  • atomic actions are expanding: trigger add/edit/remove is moving into atomic actions
  • trigger history pagination now supports sub_action_id
  • increased action timestamp staleness threshold from 60s to 120s
  • relaxed oracle unfreeze price-change threshold from 0.5% to ~1.33% per timestamp unit
  • added referrer tracking, i.e. builder codes
  • added taker-side client order ID to WebSocket messages
  • rate now has two buckets: /action and all other endpoints. we will be announcing new rate limits as we adjust them
  • introduced vaults. see docs for api. briefly:
  • HTTP:
    • GET /vaults/*
    • GET /account/{account_id}/vault-user-states
    • GET /account/{account_id}/history/vault/*
  • WS:
    • subscribe with vault@{vault_id}
    • receives Vault update payload with latest full vault state

nord-ts v0.5.1:

  • adds centralized math utilities and updated trading function types
  • adds trigger add/edit/remove support in atomics

nord-ts v0.6.0:

  • introduces ActionsV2 with the new placement interface instead of delegator_id
  • placement must now be explicit, see the module docs
  • user actions for deposit and withdrawing to/from vaults
  • on refresh session you can specify expiry timestamp

both v0.5.1 and v0.6.0 are compatbile with v17 of nord.

These materials are provided for informational purposes only and do not constitute financial, investment, legal, or tax advice, or an offer or solicitation to buy or sell any asset. Trading digital assets and derivatives involves substantial risk, including the possible loss of some or all capital. Products may not be available in all jurisdictions. Users are responsible for evaluating suitability and complying with applicable laws.