PrivatarSDK preview

Connect from Chrome.

Use Privatar on a desktop browser and approve each site inside your wallet.

Install and open your wallet

Install Privatar from the official Chrome Web Store listing. Open its toolbar panel, create a test wallet or restore your recovery phrase, and protect the local vault with a unique password. The published Store version supports Midnight Preview and Preprod; the 0.1.5 preview also supports Mainnet and is awaiting Google review. Desktop Chrome is the extension target; phones and tablets use the Privatar app.

The extension 0.1.5 ZIP is available in the official binary release. For manual installation, extract the ZIP, open Chrome’s Extensions page, enable Developer mode, choose Load unpacked and select the extracted folder. The archive has manifest.json at its root. Store installations update through Chrome after Google review.

Connect from a site

  1. Click the site’s Privatar extension action, or Connect Privatar when the site selects the installed desktop extension.
  2. Privatar opens its wallet panel with the requesting site origin, network and permissions. Unlock or set up the wallet first if needed.
  3. Approve or decline the connection inside Privatar. There is no separate Enable on this site step.
  4. The site receives an approved SDK connection. Sign-in and spending still require their own verified request and consent.

Chrome host access allows the connector to discover requests on eligible HTTPS and local-development pages. It does not authorize any site to read wallet data or sign. Sessions are bound to the browser-supplied origin, originating tab, network and approved permissions, expire after thirty minutes and can be revoked in Connections. Closing the toolbar panel leaves the separate wallet runtime running; locking ends access.

Choose a transport in the SDK

TypeScript
import { createPrivatarClient } from '@privatar-wallet/sdk';

const client = createPrivatarClient({ appName: 'My application' });

// Start inside the user's Connect action.
const pending = await client.beginConnect({
  transport: 'auto',
  network: 'preview',
  permissions: ['addresses', 'balances', 'signData'],
});

if (pending.transport === 'app') {
  // Your UI opens pending.uri on mobile or displays it as a QR on desktop.
  showAppHandoff(pending);
}

const connection = await pending.connection;
const addresses = await connection.getAddresses();

Use transport: 'auto' to discover an installed extension on desktop and fall back to app pairing when unavailable. Use transport: 'extension' for an explicit extension button, or transport: 'app' for the phone wallet. Omitting transport preserves the app-pairing default. client.isExtensionAvailable() detects desktop availability; the SDK excludes mobile and tablet devices, including desktop-mode iPads. An extension connection has no pairing URI or QR. Handle a declined or failed request explicitly.

The same PrivatarConnection API provides scoped addresses, balances, supported signatures and Preview transaction requests for either wallet. The extension does not use the hosted app-pairing relay. A successful connection is permission approval, not an authenticated website account: issue a fresh server challenge, request signData, then verify and consume its nonce before logging in. Read authentication and permissions.

On mobile, the site opens the Privatar app directly without a QR. Authenticated invitations can combine connection and initial sign-in in one biometric confirmation, followed by a same-origin browser return and server verification. Desktop-to-phone connections retain the QR. Never show Connected or signed in from the return URL alone.

Sync and wallet updates

The top sync bar is collapsed by default. Expand it for the three stream details; ordinary transfers may proceed before full sync when their inputs, proofs and DUST fee are usable. See synchronization and sending. A connected site can read partial balances, so handle syncStatus and observedAt rather than assuming every balance is final.

Settings includes About Privatar and Update wallet. Chrome controls installation of store updates. Finish active requests before restarting the extension for an available update. Updating does not require re-entering recovery words on a website.

If the panel does not open

Check that Privatar is installed, enabled, updated and allowed to run on the current HTTPS or localhost site. Use a top-level page rather than an embedded frame. If the wallet is locked, unlock it in the panel. A declined, expired or revoked request requires a new user-initiated connection; keep the site’s failure and cancellation states visible.

Privatar · Midnight wallet & connection SDKPreview documentation · October 2026