Loop SDK – Release Notes¶
Release Resources¶
- NPM Package:
@fivenorth/loop-sdk - Full Changelog:
CHANGELOG
The release notes below highlight only the major updates. Refer to the links above for the complete changelog.
v0.15.0¶
- Connect: default wallet URLs updated to
wallet.looptech.io(mainnet),wallet.testnet.looptech.io(testnet), andwallet.devnet.looptech.io(devnet). The previouscantonloop.comdomains are kept as an automatic fallback via the newsecondaryWalletUrl. - Connect:
init(...)accepts an optionalsecondaryWalletUrlto override the fallback wallet URL. - Connect:
getConnectUrl(isOldDomain?: boolean)returns a single URL (passtruefor the fallback). NewgetConnectUrls()returns both primary and 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.
v0.14.0¶
- Server SDK: add Fee Balance helpers for server integrations:
prepareSubmission(...),executeSubmission(...),getFeeBalance(...),topUpFeeBalance(...), andensureFeeBalance(...). - 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.
v0.13.4¶
- Security policy included in npm package.
v0.13.3¶
- Add security policy.
v0.13.2¶
- Connect: backend compatibility for SDK versions that open the ticket WebSocket with only
ticket_idis being removed. Integrators should use@fivenorth/loop-sdk@0.13.1or later before backend enforcement is enabled. - 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.
v0.13.1¶
- SDK: clear stale cached Connect sessions when the server reports the ticket as invalid, expired, revoked, or missing.
v0.13.0¶
- 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_idfrom Server SDK authentication/session state.
v0.12.5¶
- SDK: expose
utility_preapproval_adminsonAccountso dApps can inspect which utility admins have preapproval for the connected wallet.
v0.12.4¶
- SDK: broadcast a reject message over the websocket when the wallet popup/tab is closed so the backend can invalidate the pending request.
v0.12.3¶
- SDK: detect when the wallet popup/tab is closed during a pending request and reject with
PopupClosedErrorinstead of waiting only for timeout.
v0.12.2¶
- Browser SDK: add
provider.estimateGas(payload)so browser / WalletConnect dApps can inspect expected network gas before submission. - SDK: add optional
deduplicationPeriodsupport tosubmitTransaction,submitAndWaitForTransaction, andtransfer. - SDK: continue accepting caller-provided
commandIdon the transaction payload so integrators can safely retry the same logical command. - Server SDK: fix the
node-forgeimport path used by the server signer.
v0.12.1¶
- Server SDK: add
estimateGas(payload)so integrators can inspect expected network gas before submitting a transaction.
v0.12.0¶
- Upgrade required for Server SDK: integrators should update to
@fivenorth/loop-sdk@0.12.0or later to support the new after-execution network gas flow. - Server SDK transactions now use an after-execution network gas model. If a previous transaction created unpaid network gas, the next transaction attempt may fail with
PaymentRequiredError. - Add
checkDueGas(trackingId?)andpayGas(trackingId)helpers so integrators can check for pending network gas before submitting a transaction and pay it first if present. - Surface
402 Payment RequiredasPaymentRequiredErroras a fallback when unpaid network gas is detected during submission.
v0.11.2¶
- SDK: stop auto-closing request-signing popup/tab on request completion (wallet UI controls close behavior).
- SDK: include wallet reject
messageandcodeinRejectRequestError.
v0.11.1¶
- SDK: fix server-side SDK to not bundling and just compile TS -> JS
v0.11.0¶
- 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 (
demo/server.ts) showing end-to-end headless signing. - Breaking:
TransactionPayloadno longer includesexecution_modeorestimate_traffic. UsesubmitTransactionoptions (executionMode,estimateTraffic) instead. - Docs: clarify server SDK custody requirements and add headless usage examples.
v0.10.0¶
- Add
memoto the transfer helper payload and store it as transfer metadata. - Add
estimateTrafficoption to return estimated traffic in submit responses. - Docs: add installed DAR versions list for Canton nodes.
v0.9.0¶
- Add execute-and-wait connect execution path (selectable via options) that returns transaction results or failures immediately for dapp integrations.
v0.8.0¶
onTransactionUpdatenow returnsupdate_idandupdate_datain the update payload.update_datais the ledger transaction tree (includeseventsById,workflowId,effectiveAt, etc.).
v0.7.6¶
- Add
getConnectUrlmethod to get link to wallet connect.
v0.7.5¶
- Fix not able to re-connect when aborting a connection half way without complete the handshake.
v0.7.4¶
- Improve style of the Loop connect modal.
- Fix bug connect modal not showing up when calling
connectagain after hiding it and resume the connect flow.
v0.7.3¶
- Add
autoConnectandlogoutmethods to enhance user experience on auto login on page load and control wallet logout flow
v0.7.2¶
- Expose
has_preapproval,has_merge_delegationandusdc_bridge_accessto account object for dapp to check and ensure an account is setup to avoid UTXO size growing up. - Add a new method
getAccounton provider to allow dapp to refresh these status.
v0.7.1¶
- Custom wallet prompt message: pass
messageto transactions to show dApp-provided text in the wallet UI. - Add optional
requestSigningMode(defaults to'popup') to auto-open wallet dashboard (popup/tab) for signing/transaction requests and auto-close the popup when the wallet responds. - Add internal request lifecycle hooks on
Providerto allow the SDK core to react to signing and transaction requests.
v0.7.0¶
- Auto-reconnect websocket before sending requests to reduce
Not connectederrors after idle timeouts. - Add USDC withdraw helper:
wallet.extension.usdcBridge.withdrawalUSDCxToEthereum(withwithdrawalias), move USDC types/logic under the extension, and update the demo helper UI.
v0.6.5¶
- Adjust
HANDSHAKE_REJECTbehavior so popup closing is fully controlled by the Wallet Connect UI.
v0.6.4¶
- Added per-transfer
requestTimeoutoption (defaults to 5 minutes), exportedDEFAULT_REQUEST_TIMEOUT_MS, and updated demo UI to accept a timeout value.
v0.6.3¶
- Added embedded CodePen demo to the docs under the Demo section for interactive examples.
v0.6.2¶
- Version bump release; package metadata updated to 0.6.2.
v0.6.1¶
- Increased wallet request/transaction timeout to 5 minutes.
- Display instrument admin info when fetching holdings.
- Docs moved under the
loop-sdkpackage directory.
v0.6.0¶
- Added
loop.wallet.transferhelper that builds and submits transfers (optional instrument admin/id overrides). - Demo updated with transfer UI fields.
v0.5.0¶
- Added
id/classto the overlay container and wrapped QR/link in a content div for easier styling/hooks.
v0.4.0¶
- BREAKING:
openModeandredirectUrlnow live under theoptionsobject inloop.init(). - Added
emailtoverifySession()response by extending theAccountreturn type. - Added UUID polyfill fallback for environments without
crypto.randomUUID.
v0.3.0¶
- Added popup-based wallet connect flow and auto-close after acceptance.
v0.2.1¶
- Cleared invalid cached
loop_connectsession when ticket is missing/expired to prevent stale reconnect errors.
v0.2.0¶
- Added
emailtohandshake_acceptpayload and exposedprovider.emailto dApps.