Skip to content

Release 0.42.0

Application review for owner NEAR operations, review origin and visibility events, and the export keys drawer fix.

Release 0.42.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.42.0.

  • prepareOwnerTransaction on a readable React wallet accepts review. See Show your review first. The operation state is reviewing until Continue to wallet. A switch on the state must handle reviewing.
  • review.origin starts the first review from a rectangle in your page. It never applies to wallet approval. With reduced motion, the review appears in place. See Start from your own modal.
  • review.onVisible({ stage, rect }) reports review or wallet when that surface is on screen. Back to review reports review again. An error in the callback cannot change the transaction.
  • The export keys drawer appears again. SDK 0.39.0 to 0.41.1 kept it hidden, so export could not finish in the default drawer.
  • A loading wallet no longer clears the focus of your page. A visible review takes keyboard focus on its heading.
  • A focused control stays in view after transaction details expand in a short viewport. This fault started in 0.30.0.
  • In Firefox, a standalone modal or drawer no longer opens with a focus ring on its close button.
  • A page load makes one session read less when the first preference snapshot names the wallet that the read already answered.
  • review on prepareOwnerTransaction needs a 0.42.0 wallet host. An older host answers review_invalid_input. Keep package code and hosted assets on the same version.

0.42.0-rc.1 was a test version under the npm next tag. Use 0.42.0.

The Wallet iframe protocol remains 23.0.0, and the wallet-management protocol remains 5. The signed recovery CLI remains 0.29.0. This release adds no database migrations.

Release 0.41.1 ​

The browser SDK, server SDK, and VoiceID plugin use 0.41.1.

  • A NEAR request with one ft_transfer or ft_transfer_call action and exactly 1 yoctoNEAR attached now headlines the token amount. The review shows the final recipient and the token contract, and the details name the deposit as a required security deposit.
  • The wallet reads the symbol and decimals from its own list or from ft_metadata on the token contract. It never takes them from the application. If the metadata is not available within 2 seconds, the review shows the exact base units.
  • Only a token on the wallet's list uses official artwork. A contract outside the list that claims a listed symbol gets a warning.
  • Any other action or attached NEAR keeps the NEAR amount as the headline, and the token transfer appears as rows beside it.
  • An ERC-20 transfer call with no native value headlines the token amount, with the final recipient and the token contract. The wallet names only tokens on its own list for that chain. Any other token shows its exact base units, because a contract's own symbol proves nothing.
  • Native value on Ethereum and Base shows as ETH instead of wei.
  • The review has artwork for BTC, ETH, stNEAR, NEAR, USDC, USDT, SOL, and ZEC, and for listed wrapped forms such as WBTC.
  • A long amount wraps, so every digit stays visible.
  • The transaction details state a deposit below 0.00001 NEAR exactly, instead of 0 NEAR. Their scrollbar follows the wallet theme.

The Wallet iframe protocol remains 23.0.0, and the wallet-management protocol remains 5. The signed recovery CLI remains 0.29.0. This release adds no database migrations.

Release 0.41.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.41.0.

  • unresolved owner NEAR outcomes carry retirementWait while a transaction waits for its limit. It holds lastAcceptedBlockHeight, finalBlockHeight, and submission. Read this field, not the error text. Other unresolved results do not have it.
  • A hash-only receipt now reports a safety wait. Its limit counts from the first observation and is not a NEAR limit.
  • Owner operations bind to the NEAR network, not the RPC URL. Another RPC on the same network finds the same receipt and the same pending guard.
  • Recovery cannot end an operation through an RPC that reports another chain.
  • Records from SDK 0.40.0 and earlier move to the network binding when they open under the URL that wrote them. Open or finish them before you change the RPC URL.

The Wallet iframe protocol remains 23.0.0, and the wallet-management protocol remains 5. The signed recovery CLI remains 0.29.0. This release adds no database migrations.

Release 0.40.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.40.0.

  • Owner NEAR receipts retain the signing key, nonce, reference block, and broadcast milestone before the first broadcast attempt.
  • Recovery returns retired with proof.execution: 'not_executed' when a finalized block proves that an expired transaction never executed.
  • Recovery returns retirement_available when NEAR prevents future execution but cannot prove past non-execution. retire() requires a fresh wallet-origin owner passkey approval.
  • Hash-only receipts from SDK 0.39.0 and earlier remain unresolved until their validity period passes after their first recovery with SDK 0.40.0.
  • Retirement never rebroadcasts and releases only the matching pending operation.

The Wallet iframe protocol advances to 23.0.0, and the wallet-management protocol remains 5. Older browser SDKs cannot connect to the 0.40.0 hosted wallet. Upgrade browser SDKs, hosted assets, server SDK, and enabled VoiceID plugin together. The signed recovery CLI remains 0.29.0. This release adds no database migrations.

Release 0.39.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.39.0.

  • Loading wallet surfaces preserve page clicks, typing, and focus. A modal opens only when its content is ready.
  • Owner NEAR recovery has no modal or approval queue reservation. Approvals retain their interactive modal.
  • Recovery has a fixed 35-second transport deadline. Progress cannot extend it, and late replies cannot disturb another approval.
  • Recovery queries tx with wait_until: 'NONE'. Unknown and nonfinal outcomes preserve the pending operation and never trigger rebroadcast.
  • Recovery exposes the stored hash before querying status. A blocked handle retains the earlier operation's identity during progress and after errors.

The Wallet iframe protocol remains 22.0.0, and the wallet-management protocol remains 5. The signed recovery CLI remains 0.29.0. Update the SDK, hosted assets, server, and enabled VoiceID plugin together. This release adds no database migrations. An unknown transaction does not prove non-submission and cannot safely retire a historical receipt.

Release 0.37.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.37.0.

  • Hosted billing refusals return billing_credit_exhausted before a new session credential reaches the caller.
  • Hosts can reserve signing credit in the operation-claim transaction. Exact retries consume no extra unit.
  • Confirmed failures before execution release their commitment. Uncertain execution outcomes retain it.
  • Recovery and key export remain available under the hosted billing policy.
  • Wallet core constructs VoiceID enrollment records from verified enrollment results.

Apply server migration 0088_signing_credit_commitments.sql before enabling hosted signing credit. This migration supplies runtime accounting. The Seams Console release supplies credit policy, login-based MAU, and monthly collection. Package publication alone does not activate billing. Coordinate the Console migrations and runtime rollout before enabling postpaid accounts.

The Wallet iframe protocol remains 22.0.0. The wallet-management protocol remains 5. The signed recovery CLI remains 0.29.0. Update the SDK, hosted assets, server, and enabled VoiceID plugin together.

Release 0.36.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.36.0.

  • Owner NEAR operations replace failed with not_submitted and recovery_unavailable.
  • unresolved retains the exact transaction hash and recovery identity. Applications must save the identity returned by the SDK.
  • Submission events expose the hash before broadcast. Missing browser storage cannot prove non-submission.
  • Broadcast and status requests stop waiting after 30 seconds. Timeouts preserve uncertainty and never trigger a second broadcast.
  • Confirmed reverts settle immediately. Receipt write failures preserve known outcomes.
  • The example retains hashes across reload and prevents replacement of unresolved operations.
  • Interrupted application authentication and owner-proof retries preserve their original authorization and connection.
  • VoiceID uses explicit wallet-host lifecycle inputs for enrollment, activation, and approval.

The Wallet iframe protocol advances to 22.0.0. Update browser SDKs and hosted Wallet assets together. Older iframe protocols fail the handshake and require an application SDK update. Update the server SDK and enabled VoiceID plugin to the matching package version. The signed recovery CLI remains 0.29.0, and the wallet-management protocol remains 5. This release adds no database migrations. See owner-operation recovery for the outcome contract.

Release 0.35.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.35.0.

  • Tiny NEAR amounts use yoctoNEAR when it gives a shorter exact display.
  • Click an amount below 0.000001 NEAR to toggle between its exact amount and < 0.000001 NEAR.
  • The amount and unit stay on one line. The toggle also supports Enter and Space.

Update the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. The signed recovery CLI remains 0.29.0, the Wallet iframe protocol remains 21.0.0, and the wallet-management protocol remains 5. This release adds no database migrations or protocol changes.

Release 0.34.0 ​

The browser SDK, server SDK, and VoiceID plugin use 0.34.0.

  • Runtime and development dependencies retain exact versions to reduce exposure to unreviewed dependency updates.
  • React and React DOM remain optional peers with >=19.0.0. This range includes React 20 and later major versions.
  • SDK development uses exact React and React DOM 19.2.9.
  • Applications select their React version through their own dependency declarations and lockfiles.
  • The peer range permits installation with future React versions. It does not certify untested versions.

Update the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. The signed recovery CLI remains 0.29.0, the Wallet iframe protocol remains 21.0.0, and the wallet-management protocol remains 5. This release adds no database migrations or protocol changes.

Release 0.33.0 ​

Version 0.33.0 adds application controls for the hosted authentication menu.

ComponentVersion
@seams/wallet0.33.0
@seams/wallet-server0.33.0
@seams/voiceid0.33.0
Signed recovery CLI0.29.0
Wallet iframe protocol21.0.0
Wallet-management protocol5
  • External wallet status uses the footer. Temporary iframe scrollbars stay hidden.
  • Wallet icons retain their original colors.
  • Set recoveryOptions to collapsible (default), expanded, or hidden.
  • Use footerBrand with a custom image and accessible name to replace the Seams brand line.
  • Meteor transport failures explain how to enable the extension for the site.
  • Choosing another action clears the previous external-connection error.

Update the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. The hosted-menu request fields advance the iframe protocol to 21.0.0. React integrations require react@19.1.1 and react-dom@19.1.1. This release adds no database migrations. See the React reference.

Release 0.32.0 ​

Version 0.32.0 keeps the exact dependency versions and aligned React peers from 0.31.0.

ComponentVersion
@seams/wallet0.32.0
@seams/wallet-server0.32.0
@seams/voiceid0.32.0
Signed recovery CLI0.29.0
Wallet iframe protocol20.0.0
Wallet-management protocol5

React integrations require react@19.1.1 and react-dom@19.1.1. Update the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. This version adds no database migrations or iframe protocol changes.

Release 0.31.0 ​

Version 0.31.0 pins external npm and Cargo dependencies and aligns the Wallet runtime builds.

ComponentVersion
@seams/wallet0.31.0
@seams/wallet-server0.31.0
@seams/voiceid0.31.0
Signed recovery CLI0.29.0
Wallet iframe protocol20.0.0
Wallet-management protocol5

React integrations require react@19.1.1 and react-dom@19.1.1. Optional QR integrations use jsqr@1.4.0 and qrcode@1.5.4. Update the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. This release adds no database migrations or iframe protocol changes.

Release 0.30.0 ​

Version 0.30.0 combines Seams authentication and configured external wallet connections in one hosted screen.

ComponentVersion
@seams/wallet0.30.0
@seams/wallet-server0.30.0
@seams/voiceid0.30.0
Signed recovery CLI0.29.0
Wallet iframe protocol20.0.0
Wallet-management protocol5
  • Use HostedSeamsAuthMenu with optional ordered walletAlternatives.primary and walletAlternatives.secondary groups.
  • Omitted configuration and empty groups hide their sections. Secondary wallets appear inside More wallets.
  • Reuse the existing NEAR and EVM controllers. Connection callbacks stay in the application.
  • Recover or link wallet expands device linking and recovery. Alternative icons gain color on hover or keyboard focus.
  • Closing the menu or replacing a controller invalidates pending connections. Completed connections survive menu closure.
  • Signing sessions use sealed refresh by default. Passkey unlock also works without saved sealed-session material.

WalletConnectorMenu is removed. Move its wallet entries into HostedSeamsAuthMenu.walletAlternatives. Low-level connector requests use alternativeId. External success emits wallet_connected without creating a Seams session. Upgrade application SDKs and hosted Wallet assets together. This release changes the iframe protocol and adds no database migrations. See the React reference for configuration.

Release 0.29.0 ​

Version 0.29.0 connects an application's authenticated user to a readable wallet. Fresh wallet-origin owner proof approves each NEAR transaction.

ComponentVersion
@seams/wallet0.29.0
@seams/wallet-server0.29.0
@seams/voiceid0.29.0
@seams/wallet-cli0.29.0
Wallet iframe protocol19.0.0
Wallet-management protocol5
  • Configure an Ed25519 application issuer in the existing Console environment trust setting.
  • Google and application-passkey login can resolve to one stable application subject.
  • Associate and unlink identities through fresh owner approval without opening a reusable signing session.
  • Register a NEAR-only passkey wallet through registration.registerOwnerWallet.
  • Use near.prepareOwnerTransaction for one fresh transaction approval, including after reload.
  • Observe capability-specific React wallets and operation states. A read connection supplies no reusable signer.
  • Persist a public recovery descriptor. Recover an existing submission by status query, with no repeat broadcast.

Upgrade the browser package, hosted Wallet assets, server package, and enabled VoiceID plugin together. Apply signer migrations 0086 and 0087 and Console migration 0112. These migrations replace the previous identity and trust storage shapes. Complete or cancel unfinished relocation operations before applying signer migrations.

The initial owner-operation API supports NEAR and an enrolled wallet-origin owner passkey. GetSignal's passkeys authenticate GetSignal's application session. Read the application-session guide and maintained example before integration.

Release 0.28.0 ​

Version 0.28.0 lets applications reuse a Google ID token to open associated wallet settings. Signing and custody operations keep their owner authentication requirements.

ComponentVersion
Browser SDK @seams/wallet0.28.0
Server SDK @seams/wallet-server0.28.0
Optional plugin @seams/voiceid0.28.0
Native CLI launcher @seams/wallet-cli0.28.0
Wallet iframe protocol18.0.0
  • auth.authenticate accepts Google credentials or a browser-bound backend handoff. An owner-authorized association is required.
  • Settings sessions have explicit read permission, origin binding, expiry, and revocation. They issue no signing quotas and open no custody envelopes.
  • Wallet settings support a responsive drawer and localized views of accounts, methods, and devices.
  • VoiceID supports configurable Citrinet and Aurora transcription models and includes updated phrase calibration tools.

Upgrade the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. Apply the server migrations before enabling external authentication. See the authentication guide for the supported flows. Use the Google SSO guide for the complete BYO auth integration.

Release 0.27.0 ​

Version 0.27.0 adds the default customizable wallet connector and improves authentication, receipt, and VoiceID flows.

ComponentVersion
Browser SDK @seams/wallet0.27.0
Server SDK @seams/wallet-server0.27.0
Optional plugin @seams/voiceid0.27.0
Native CLI launcher @seams/wallet-cli0.25.0
Wallet iframe protocol17.0.0
  • WalletConnectorMenu supplies wallet selection, official wallet icons, configurable copy, and a continuous transition into hosted authentication.
  • Back navigation returns to wallet selection. Connector controls and authentication success indicators use SDK theme tokens.
  • Transaction details scroll within the viewport. Receipt transitions retain their text position and stay inside the iframe.
  • NEAR transaction results distinguish rejection before submission, uncertain submission, and unresolved final outcomes.
  • VoiceID supports loading recovery, explicit retry, and consistent microphone capture across attempts.

Upgrade the browser SDK, hosted Wallet assets, server SDK, and enabled VoiceID plugin together. See the React reference for connector configuration.

Previous releases ​

Release 0.26.0 ​

Version 0.26.0 repairs stale browser authority records after cold passkey custody recovery.

ComponentVersion
Browser SDK @seams/wallet0.26.0
Server SDK @seams/wallet-server0.26.0
Optional plugin @seams/voiceid0.26.0
Native CLI launcher @seams/wallet-cli0.25.0
Wallet iframe protocol17.0.0
  • Recovery adopts the verified Ed25519 activation and removes superseded local seals. Existing stale records can reconnect through normal passkey unlock.
  • Authority identity, permissions, revocation, and concurrent lock checks remain enforced. Delayed responses cannot replace a newer session.
  • Browser TLS passkey failures show trusted HTTPS guidance. Actual user cancellation remains silent.
  • Device linking requires explicit approval inside the Wallet origin. Parent applications cannot supply that approval.

Upgrade the application SDK and hosted wallet assets together. VoiceID hosts use the matching plugin version. Avoid browser SDK 0.25.0 because cold recovery can leave a stale authority record that prevents later unlocks.

Release 0.25.0 ​

Version 0.25.0 protects SDK controls from broad application CSS and adds an app-controlled settings modal.

ComponentVersion
Browser SDK @seams/wallet0.25.0
Server SDK @seams/wallet-server0.25.0
Optional plugin @seams/voiceid0.25.0
Native CLI launcher @seams/wallet-cli0.25.0
Wallet iframe protocol17.0.0
  • SDK controls and portalled overlays use a consistent namespace and explicit control defaults.
  • AccountMenuButton supports its dropdown and a modal controlled through isMenuOpen and onMenuOpenChange.
  • Applications can use their own buttons to open the settings modal with presentation="modal".
  • VoiceID action challenges accept confirmationCommand to select an action-specific phrase.

The CLI includes signed native binaries for macOS on Apple Silicon and Intel, plus Linux x86_64. See the recovery CLI guide for installation and verification.

See the React reference for the settings API. Deploy the matching wallet host assets with the browser SDK.

Release 0.24.0 ​

Version 0.24.0 adds optional VoiceID enrollment, unlock, and reviewed NEAR and Arc testnet signing.

ComponentVersion
Browser SDK @seams/wallet0.24.0
Server SDK @seams/wallet-server0.24.0
Optional plugin @seams/voiceid0.24.0
Wallet iframe protocol17.0.0

VoiceID models and inference code ship in @seams/voiceid. The base Wallet package has no VoiceID model or engine payload. Import voiceIdAuthMethod from @seams/voiceid and explicitly enable it in authMethods. The Wallet host operator installs the plugin assets with seams-voiceid-host ./wallet-with-voiceid. See VoiceID setup for the complete application and host steps. Enabling the descriptor alone causes no VoiceID download.

The first VoiceID operation shows one download indicator for the engine and three models, then Preparing VoiceID…. Voice samples persist until the owner changes or removes them. Speaker verification remains at 0.5. VoiceBeam and VoiceAssistantCard now come from @seams/voiceid/react; card styles come from @seams/voiceid/styles.

Release 0.22.0 ​

These docs target version 0.22.0 of the browser and server SDKs. The recovery CLI uses 0.21.0.

Prepared on 2026-10-25. Check npm publication and each hosted deployment separately.

Changes in 0.22.0 ​

  • The unlock menu shows saved wallets while authentication prepares.
  • Transaction settings provide a review switch and modal or drawer layouts.
  • NEP-413 message signatures show a completed receipt with three filled tracks.
  • The link-device factor selector and Continue button follow the wallet theme.
  • The NEAR relayer reads the access key and recent block concurrently.
ComponentVersionRequirement
Browser SDK @seams/wallet0.22.0Match application code and wallet-origin assets
Server SDK @seams/wallet-server0.22.0Deploy the coordinated backend roles
Native CLI launcher @seams/wallet-cli0.21.0Use its signed native assets and the dashboard's commands
Wallet iframe protocol16.0.0Match the application and wallet host

The CLI pins a new prelaunch recovery root. Recovery packages signed under the earlier root need new packages and certificates. The old root has no continuity bridge.

Recovery security ​

The browser SDK removes passkey PRF outputs before it sends recovery assertions to the server. The server rejects recovery assertions and registrations that still contain extension output values. ECDSA signing step-up and key-export proofs also omit PRF output, and the server requires redacted assertions. Recovery administration requires a fresh, operation-bound full-owner proof.

Documentation ​

The Japanese docs now cover the complete documentation site, including deployment, recovery, examples, and API references. The formal verification docs distinguish proved invariants from assumptions and remaining work.

Hosted wallet controls ​

  • Hosted authentication confirms success before closing and returning the result to the app.
  • Cancelling a menu before it opens prevents the wallet host from showing it.
  • Account panels, key export rows, and QR camera views fit narrow screens and scaled hosts.

English and Japanese controls ​

This release aligns the browser and server SDKs at 0.22.0. The recovery CLI uses 0.21.0. The wallet iframe protocol remains 16.0.0.

Set the SDK language when creating the provider configuration:

tsx
import { normalizeWalletLocale } from '@seams/wallet';

const appearance = {
  locale: normalizeWalletLocale(new URL(location.href).searchParams.get('locale')),
};

Pass appearance to defineSeamsConfig or SeamsWebProvider's config. Use appearance: { locale: 'ja' } for Japanese, or omit locale for English. The provider and wallet-origin controls share this configuration. SDK previews also accept locale on AccountMenuButtonMock and SeamsAuthMenuMock. Applications provide translations for their own headings and custom copy overrides.

Pin the exact 0.22.0 browser and server packages in Console and deploy the matching wallet-origin assets. An application-only update cannot translate an older hosted wallet build.

Integration ​

Install the browser SDK through Start here. Follow hosted integration for the wallet host and backend. Deploy application code and wallet assets together.

React's useSeams() supplies authentication actions and the current bound wallet:

tsx
const { unlock, lock, wallet } = useSeams();

The wallet is null while signed out. Its NEAR signer remains null until a NEAR account is ready. Check wallet?.near before signing. Use the wallet from the authenticated render after unlock completes.

Registration defaults to a server-assigned wallet ID. Omit wallet in registerWallet for that flow. Explicit wallet selection remains available. Omit signerSelection to use the configured chains and provisioning defaults. Custom signer selections remain available.

Deployment ​

Deploy the matching wallet host, Gateway, Wallet Runtime, Router, control plane, both Derivers, and Signing Worker. Apply the packaged D1 migrations before the corresponding Workers serve traffic.

Verify the release identity of each deployed service. Package publication and hosted deployment are separate steps. Follow the production checklist and verify the recovery CLI before relying on recovery tooling.

Prepared NEAR connector ​

Each wallet is explicitly enabled through wallets. The demo and examples select Meteor only. setWallets supports runtime changes, including an empty list to disable every wallet. See wallet selection configuration.

Checked on 2026-10-26: npm's latest browser SDK is 0.22.0. The external NEAR connector is implemented on dev and is not part of that release. No new package version or deployment is claimed here.

The connector guide covers Meteor, HOT, and Intear, the two new package entry points, and compiled development examples. Real Meteor testnet connection and a zero-deposit transaction passed final execution and exact contract readback. HOT mainnet connection and retry after popup cancellation were also verified with a real extension. HOT transaction signing and Intear real-wallet checks remain pending. Publication and private-app adoption still need an exact SDK release.