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

@notifi-network/notifi-react-wallet-target-plugin

v8.0.0

Published

The Wallet Target Plugin context provider for @notifi-network/notifi-react

Downloads

73

Readme

@notifi-network/notifi-react-wallet-target-plugin

A plugin for @notifi-network/notifi-react that enables advanced wallet-based notification targets.

This package provides the NotifiContextProviderWithWalletTargetPlugin context component, allowing seamless integration of Wallet Target functionality into Notifi’s React context system. By utilizing the toggleTargetAvailability.wallet prop within NotifiTargetContext, you can dynamically enable or disable wallet-based targeting at runtime and leverage the plugin’s capabilities.

Important Note

This package is a plugin for @notifi-network/notifi-react and cannot be used independently. Ensure that you have @notifi-network/notifi-react installed before integrating this plugin.

Key Benefits

  • Maintains the same interface style as notifi-react, ensuring minimal changes when integrating.
  • Modular design allows developers to opt-in only if Wallet Target functionality is needed.
  • Works alongside the primary NotifiContextProvider, adding a specialized layer for detecting and handling Wallet Target contexts.
  • Provides flexibility: use the core package for standard notification flows or extend with this plugin for wallet-based targeting.

Usage (with @notifi-network/notifi-react)

Below is a minimal example demonstrating how to replace the standard Notifi provider with the plugin-based provider:

import { NotifiContextProviderWithWalletTargetPlugin } from '@notifi-network/notifi-react-wallet-target-plugin';
import React from 'react';

function App() {
  return (
    <NotifiContextProviderWithWalletTargetPlugin
    /* Same props as NotifiContextProvider */
    >
      {/* Include Notifi features like NotifiCardModal or custom forms here */}
      {children}
    </NotifiContextProviderWithWalletTargetPlugin>
  );
}

export default App;

When toggleTargetAvailability.wallet is set to true, the plugin enables wallet-specific notification targets (e.g., Coinbase). To utilize this functionality, ensure your app is wrapped with NotifiContextProviderWithWalletTargetPlugin instead of the standard NotifiContextProvider when wallet targeting is required.

Additional Configuration

This plugin is powered by @xmtp-react-sdk, which requires requires specific configuration to handle the wasm file. The following configuration is required in nextjs (the recommended framework).

  • Nextjs version 14.2.0 or above

    nextConfig = {
      experimental: {
        serverComponentsExternalPackages: [
          '@xmtp/user-preferences-bindings-wasm',
        ],
      },
    };
    
    // ...other configs
  • Nextjs version below 14.2.0

    It requires manual copy of the wasm file to the server chunk folder. We will need to grab the user_preferences_bindings_wasm_bg.wasm file from @xmtp/user-preferences-bindings-wasm npm package: Code > dist > bundler > user_preferences_bindings_wasm_bg.wasm. And put it in the public/wasm directory. Then add the following configuration in the next.config.js file.

    nextConfig = {
      ...nextConfig,
      webpack: (config) => {
        config.plugins.push(
          new CopyPlugin({
            patterns: [{ from: 'public/wasm', to: './server/chunks' }],
          }),
        );
        return config;
      },
    };
    // ...other configs

The projects might encounter the following error if the above configuration is not set up properly.

Error: ENOENT: no such file or directory, open '/path/to/project/.next/server/vendor-chunks/user_preferences_bindings_wasm_bg.wasm'

Reference:

Advanced Usage

Instead of using NotifiContextProviderWithWalletTargetPlugin, which wraps NotifiContextProvider, you can use NotifiWalletTargetContext independently. This is useful when integrating NotifiWalletTargetContext into a different part of your app or pairing it with another context provider.

import { NotifiTargetContextProvider } from '@notifi-network/notifi-react';
import { NotifiWalletTargetContext } from '@notifi-network/notifi-react-wallet-target-plugin';

// ... other imports

function App() {
  return (
    <NotifiWalletTargetContext {...props}>
      <NotifiTargetContextProvider toggleTargetAvailability={{ wallet: true }}>
        {/* Add Notifi components like NotifiCardModal or custom forms here */}
        {children}
      </NotifiTargetContextProvider>
    </NotifiWalletTargetContext>
  );
}

This approach gives you more flexibility in managing notification contexts within your application.