npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@matrix-privacy/wallet

v0.0.22

Published

Matrix Wallet SDK, compatible with mobile, browser and nodejs environments.

Readme

MATRIX Wallet SDK

The MATRIX Wallet SDK is an open-source project developed by [MATRIX] contributors.

The Wallet SDK enables dApp and DeFi developers to provide privacy to users safely and conveniently on Ethereum, Polygon and BNB Chain.

The repo is written in TypeScript, and compatible with node.js and modern web browsers.

HTTP V2 and private transfers

Current workspace sources implement user scenarios in design 30.

  • MatrixPrivateTransferWallet / createPrivateTransferWalletForID estimate, prove and submit W→W′ directly to Matrix. They need pool pins and the private wallet, with no E, delegated implementation or Account signer.
  • MatrixHttpBroadcasterClient(endpoint, poolDeployment, 'private-transfer') obtains V2 private-note quotes. estimatePrivateTransfer, provePrivateTransfer, submitPrivateTransferHttp and submitPrivateTransferDirect share encrypted note custody with Account operations. Proofs stay local during preview; failed/unknown submissions retain their original intent for retry and canonical receipt reconciliation.
  • Account clients use feeOfferV2(token, 'public-erc20') and accountFeesForHttpOffer(offer) to pay the operator from E in the same execution. No private proof is needed unless the request also spends private notes. publicFee.paymentIndex places payment before explicit final transfers; generated re-shield calls follow it.
  • previewCloseExecutionAccount({ account }) defaults to the current private wallet. An explicit destination: { type: 'public', recipient } selects a public exit; the legacy explicit recipient remains public. closeExecutionAccountHttp supports either fee mode. Unsupported residue prevents archive, and reopenExecutionAccountForCleanup explicitly reopens an old address when new tracked assets arrive.

Relayed Unshield and gas-priced quotes

  • MatrixRelayedUnshieldWallet / createRelayedUnshieldWalletForID exit the pool without the user's public address signing or paying gas. type: 'erc20' unshields a token straight to recipientAddress through Matrix.execute; type: 'base-token' unshields the wrapped base token to the pinned deployment.relayAdapt, which unwraps it and sends ETH to recipientAddress (RelayAdapt.relay, requireSuccess, exactly two calls).
  • Flow: estimateRelayedUnshield(request) (dummy proof; include the worst-case quote as feeOutput so note selection covers it) → quoteRelayedUnshieldHttp(id, client, feeToken) (sends the estimate as gasEstimate and writes the exact quote into the private fee note) → proveRelayedUnshield(id) → submitRelayedUnshieldHttp(id, client, offer) → pollRelayedUnshieldHttp / retryRelayedUnshieldHttp / reconcileRelayedUnshield. Use new MatrixHttpBroadcasterClient(endpoint, poolDeployment, 'unshield').
  • feeOfferV2(token, mode, { gasEstimate }) requests a signed gas quote (fee = ceil(1.5 × gas × gasPrice) in the fee token, gasPrice = latest baseFee + submitter tip) from broadcasters that advertise pricing: 'gas-estimate'. The broadcaster sets the outer transaction's fee fields itself; the Wallet's values are advisory and only gasLimit binds. quotePrivateTransferHttp does the same for private transfers. A broadcaster REQUOTE_REQUIRED after a gas spike leaves the proof intact: retry accepts a fresh quote only when it does not exceed the proved fee.

Pool transfer deadlines are transport deadlines, not proof revocation. Do not release notes merely because an operator is offline. pollPrivateTransferHttp / reconcilePrivateTransfer verify pool effects and can recover a missing transaction hash from owned spent notes; production factories synchronize history for this check.

Native ingress remains the existing atomic wrap/approve/shield transaction through RelayAdapt. It is not replaced with a user-visible three-transaction flow. DeFi Account execution calls protocols directly.

Run pnpm run test:http-v2:e2e after building contracts, Engine, shared-models and http-broadcaster. It uses local Anvil, disposable PostgreSQL and real existing Groth16 artifacts; it does not deploy to a public chain.