Skip to content

Changelog

0.15.1 (2026-10-08)

Full Changelog: v0.15.0...v0.15.1

What Changed

  • connect: the connect modal is redesigned. a dotted QR code with the Loop mark, the wallet hostname beneath it, and a "Continue in this browser" button. The "Using the old wallet?" toggle still appears when a secondary wallet URL is configured.
  • connect: the modal now renders inside a shadow root on #loop-sdk-connect-overlay, so dApp styles no longer leak into it and its styles no longer leak out. The host keeps its loop-sdk-connect-overlay loop-connect classes, so existing JS hooks still find it, and a dApp rule that hides it (e.g. .loop-connect { display: none }) still stops the modal from opening while the connect flow continues. Rules that restyled the old modal's internals (e.g. .loop-connect dialog) no longer reach it, and the injected #loop-connect-styles stylesheet is gone; set the --loop-* CSS variables on #loop-sdk-connect-overlay to theme the modal instead.
  • connect: the SDK's internal overlay field and injectModalStyles() method are gone. Code that reached into them should find the modal through #loop-sdk-connect-overlay / .loop-connect, or hide it with a CSS rule on either.
  • connect: the modal now opens with showModal(), so the rest of the page is inert while it is shown.
  • connect: Esc now closes the modal, as do the close button and a click on the backdrop.

0.15.0 (2026-09-28)

Full Changelog: v0.14.0...v0.15.0

What Changed

  • connect: default wallet URLs updated to wallet.looptech.io (mainnet), wallet.testnet.looptech.io (testnet), and wallet.devnet.looptech.io (devnet). The previous cantonloop.com domains are kept as an automatic fallback via the new secondaryWalletUrl.
  • connect: init(...) accepts an optional secondaryWalletUrl to override the fallback wallet URL.
  • connect: getConnectUrl(isOldDomain?: boolean) still returns a single URL; pass true to get the fallback wallet URL. New getConnectUrls() returns both primary and (if configured) fallback URLs.
  • connect: the QR modal now shows the target hostname beneath the QR code, and — when a fallback is configured — a "Using the old wallet?" link that toggles between the primary and fallback QR/popup.
  • connect: the SDK remembers which wallet host completed the handshake and reuses it for subsequent signing popups, so users who connected via the fallback host aren't sent to the primary host on later requests.

0.14.0 (2026-08-18)

Full Changelog: v0.13.4...v0.14.0

What Changed

  • server-sdk: add Fee Balance helpers for server integrations: prepareSubmission(...), executeSubmission(...), getFeeBalance(...), topUpFeeBalance(...), and ensureFeeBalance(...).
  • server-sdk: return Fee Balance estimate fields from prepareSubmission(...) so server integrations can check/top up Fee Balance before signing and executing.
  • docs: document Fee Balance and pending network fee server SDK flows.

0.13.4 (2026-07-29)

Full Changelog: v0.13.3...v0.13.4

What Changed

  • Security policy included in NPM package

0.13.3 (2026-07-29)

Full Changelog: v0.13.2...v0.13.3

What Changed

  • Security policy added

0.13.2 (2026-07-10)

Full Changelog: v0.13.1...v0.13.2

Important

  • connect: backend compatibility for SDK versions that open the ticket WebSocket with only ticket_id is being removed. Integrators should use @fivenorth/loop-sdk@0.13.1 or later before backend enforcement is enabled.

What Changed

  • connect: handle backend ticket status messages for expired, rejected, revoked, or invalid Connect tickets.
  • connect: clear stale local sessions and reject pending requests when the WebSocket session is no longer valid.

0.13.1 (2026-06-12)

Full Changelog: v0.13.0...v0.13.1

Bug Fixes

  • sdk: clear stale cached Connect sessions when the server reports the ticket as invalid, expired, revoked, or missing.

0.13.0 (2026-06-11)

Full Changelog: v0.12.3...v0.13.0

What Changed

  • connect: store the ticket auth token separately from the Connect API auth token and use it when opening/reconnecting the ticket websocket.
  • connect: replace ticket revoke behavior with ticket disconnect on loop.logout().
  • server SDK: remove client-side session_id from Server SDK authentication/session state.

0.12.5 (2026-06-05)

Full Changelog: v0.12.4...v0.12.5

Improvements

  • sdk: expose utility_preapproval_admins on Account so dApps can inspect which utility admins have preapproval for the connected wallet.

0.12.4 (2026-04-20)

Full Changelog: v0.12.3...v0.12.4

Improvements

  • sdk: broadcast a reject message over the websocket when the wallet popup/tab is closed so the backend can invalidate the pending request.

0.12.3 (2026-04-20)

Full Changelog: v0.12.2...v0.12.3

Improvements

  • sdk: detect when the wallet popup/tab is closed during a pending request and reject locally with PopupClosedError instead of waiting only for timeout.

0.12.2 (2026-03-17)

Full Changelog: v0.12.1...v0.12.2

Improvements

  • browser-sdk: add provider.estimateGas(payload) so browser / WalletConnect dApps can inspect expected network gas before submission.
  • sdk: allow submitTransaction, submitAndWaitForTransaction, and transfer to pass an optional deduplicationPeriod.
  • sdk: keep commandId on the transaction payload for integrators that want to retry the same logical command within the Canton deduplication window.

Bug Fixes

  • server-sdk: fix the node-forge import path used by the server signer.

0.12.1 (2026-03-17)

Full Changelog: v0.12.0...v0.12.1

Features

  • server-sdk: add estimateGas(payload) so integrators can inspect expected network gas before submitting a transaction.

0.12.0 (2026-03-16)

Full Changelog: v0.11.2...v0.12.0

Important

  • Upgrade required for Server SDK gas handling: integrators must update to @fivenorth/loop-sdk@0.12.0 or later to use Server SDK with the new post-execution network gas flow. Older SDK versions do not support PaymentRequiredError, checkDueGas(...), or payGas(...).

Features

  • server-sdk: add checkDueGas(trackingId?) and payGas(trackingId) helpers for post-execution network gas collection.
  • server-sdk: surface 402 Payment Required as PaymentRequiredError with tracking_id, gas_amount, status, and expires_at.

Backend Compatibility

  • wallet-backend: allow pending network gas prepare/lookups to target a specific tracking_id.
  • wallet-backend: record pending network gas after Server SDK transaction execution and block new Server SDK submissions while gas remains unpaid.

0.11.2 (2026-03-06)

Full Changelog: v0.11.1...v0.11.2

Improvements

  • sdk: stop auto-closing request-signing popup/tab on request completion; wallet UI now controls close behavior.
  • sdk: propagate wallet reject message and code through RejectRequestError.

0.11.1 (2026-02-13)

Full Changelog: v0.11.0...v0.11.1

Bug

  • Fix build process to not bundling server sdk

0.11.0 (2026-02-13)

Full Changelog: v0.10.0...v0.11.0

Features

  • sdk: add server-side signing entrypoint: backend authenticates with the user's private key, prepares a transaction, signs the returned hash, and submits without a wallet popup (headless flow).
  • demo: add server demo showing end-to-end headless signing.

Breaking Changes

  • types: TransactionPayload no longer includes execution_mode or estimate_traffic. These are now provided via submitTransaction options (executionMode, estimateTraffic).

Documentation

  • docs: clarify server SDK custody requirements and add headless usage examples.

0.10.0 (2026-01-20)

Full Changelog: v0.9.0...v0.10.0

Improvements

  • sdk: add memo to transfer helper payload and metadata.
  • sdk: add estimateTraffic option to return estimated traffic in submit responses.
  • docs: add installed DAR versions list for Canton nodes.

0.9.0 (2026-01-20)

Full Changelog: v0.8.0...v0.9.0

Features

  • sdk: add execute-and-wait connect execution path (selectable via options) that returns transaction results or failures immediately for dapp integrations.

0.8.0 (2026-01-02)

Full Changelog: v0.7.6...v0.8.0

Documentation

  • sdk onTransactionUpdate now returns update_id and update_data in the update payload (update_data is the transaction tree).

0.7.6 (2025-12-30)

Full Changelog: v0.7.5...v0.7.6

Improvements

  • sdk Add a new method getConnectUrl to allow dapp build their own connection modal instead

0.7.5 (2025-12-29)

Full Changelog: v0.7.4...v0.7.5

Bug Fixes

  • improve connection reliability when aborting the connection half way.

0.7.4 (2025-12-29)

Full Changelog: v0.7.3...v0.7.4

Improvements

  • sdk: styled wallet connect modal

Bug Fixes

  • sdk: fix wallet connect modal will not show up again after being remove from clicking outside of the modal

0.7.3 (2025-12-24)

Full Changelog: v0.7.2...v0.7.3

Features

  • sdk: add autoConnect and logout method on loop object to auto login on page load and support log out properly
  • demo: add auto login and a log out button

0.7.2 (2025-12-21)

Full Changelog: v0.7.1...v0.7.2

Features

  • sdk: add a new getAccount method on provider to retreive preapproval, utxo merge delegation, and usdc bridge access to dapp
  • demo: add a button to retrieive these account info data

0.7.1 (2025-12-19)

Full Changelog: v0.7.0...v0.7.1

Features

  • sdk: allow passing a custom ticket message when submitting transactions so the wallet prompt can display dApp-provided context.
  • sdk: add optional requestSigningMode (default 'popup') to auto-open the wallet dashboard (popup/tab) for signing/transaction requests and auto-close the popup when the wallet responds.
  • sdk: add internal request lifecycle hooks on Provider to allow the SDK core to react to signing and transaction requests.

  • demo: add optional “Custom message” inputs to transfer and USDC withdraw helpers.

0.7.0 (2025-12-11)

Full Changelog: v0.6.5...v0.7.0

Improvements

  • sdk: automatically reconnect the websocket before sending requests if it timed out.

Features

  • usdc: add wallet.extension.usdcBridge.withdrawalUSDCxToEthereum helper and move USDC types/logic under the extension namespace; demo updated to use the new helper.

0.6.5 (2025-12-10)

Full Changelog: v0.6.4...v0.6.5

Improvements

  • sdk: adjust HANDSHAKE_REJECT behavior so popup closing is fully controlled by the Wallet Connect UI.

0.6.4 (2025-12-10)

Full Changelog: v0.6.3...v0.6.4

Improvements

  • sdk: allow per-transfer request timeout via TransferOptions.requestTimeout; export DEFAULT_REQUEST_TIMEOUT_MS and demo UI input.

0.6.3 (2025-12-09)

Full Changelog: v0.6.2...v0.6.3

Documentation

  • docs: add embedded CodePen demo to the Loop SDK demo section for interactive examples.

0.6.2 (2025-12-08)

Full Changelog: v0.6.1...v0.6.2

Improvements

  • sdk: version bump release; package metadata updated to 0.6.2.

0.6.1 (2025-12-04)

Full Changelog: v0.6.0...v0.6.1

Improvements

  • sdk: increase wallet request/transaction timeout to 5 minutes.
  • sdk: display instrument admin info when fetching holdings.
  • docs: moved Loop SDK docs under the loop-sdk package directory (previously under docs/).

0.6.0 (2025-12-03)

Full Changelog: v0.5.0...v0.6.0

Features

  • sdk: add loop.wallet.transfer helper that prepares and runs transfers via Wallet Connect, with optional instrument admin/id overrides.

0.5.0 (2025-12-02)

Full Changelog: v0.4.0...v0.4.1

Features

  • sdk: add id/class attributes to the overlay container and wrap QR/link in a content div for easier styling/hooks.

0.4.0 (2025-12-01)

BREAKING CHANGES

  • sdk: openMode has been moved into the options object of loop.init().
  • Old:
    loop.init({ openMode: 'popup' });
    
  • New:
    loop.init({ options: { openMode: 'popup' } });
    
  • sdk: redirectUrl is now also expected inside the options field.

These changes require integrators to update how they call loop.init() to prevent breaking behavior.

Features

  • sdk: expose email in verifySession() response by adding email to the Account return type and forwarding the backend value.
  • sdk: add UUID polyfill fallback for environments where crypto.randomUUID is unavailable (older browsers or non-HTTPS contexts).

0.3.0 (2025-11-26)

Full Changelog: v0.2.1...v0.3.0

Features

  • sdk: add popup-based wallet connect flow and auto-close popup on accept (aeee657)

0.2.0 (2025-11-24)

Full Changelog: v0.1.3...v0.2.0

Features

  • sdk: include email in handshake_accept payload and expose provider.email to dApps (041c22f)

0.2.1 (2025-11-25)

Full Changelog: v0.2.0...v0.2.1

Bug Fixes

  • sdk: clear invalid cached loop_connect session when ticket is missing/expired to prevent stale reconnect errors (548abe8)