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

@octanejs/wagmi

v0.0.29

Published

Wagmi v3 bindings for Octane over @wagmi/core and @octanejs/tanstack-query.

Readme

@octanejs/wagmi

Wagmi v3 bindings for Octane. The package reuses @wagmi/core, Viem, and the official connectors, while replacing the React provider and hooks with Octane bindings backed by @octanejs/tanstack-query.

pnpm add @octanejs/wagmi @octanejs/tanstack-query viem
import { QueryClient, QueryClientProvider } from '@octanejs/tanstack-query';
import { WagmiProvider, createConfig, http, useConnect, useConnection } from '@octanejs/wagmi';
import { injected } from '@octanejs/wagmi/connectors';
import { mainnet } from '@octanejs/wagmi/chains';

const config = createConfig({
	chains: [mainnet],
	connectors: [injected()],
	transports: { [mainnet.id]: http() },
});
const queryClient = new QueryClient();

function Wallet() @{
	const connection = useConnection();
	const connect = useConnect();
	<button onClick={() => connect.connect({ connector: connect.connectors[0] })}>
		{connection.address ?? 'Connect wallet'}
	</button>
}

function App() @{
	<WagmiProvider config={config}>
		<QueryClientProvider client={queryClient}>
			<Wallet />
		</QueryClientProvider>
	</WagmiProvider>
}

Supported surface

The first compatibility slice includes config/provider access; connection, connect, disconnect, switch-connection, and switch-chain; connector, connection, and chain lists; balance; contract read, simulate, and write; transaction send and receipt waiting; and message signing.

Wagmi v3 names are authoritative. Deprecated v2 aliases and all remaining hooks are intentionally absent until they have behavioral evidence.

Wallet-action safety

Signing, writing, sending, and wallet-switch prompts set retry: false even if a shared QueryClient has a mutation retry default. They require a live connected connector at dispatch. The binding snapshots the displayed address, chain, and connector: replacement before dispatch yields ActionContextChangedError and does not prompt; replacement after dispatch quarantines the late result in the same typed error instead of publishing normal success.

Hydrated state is only an initial UI/cache hint. Use parseHydratedState for untrusted cookie/SSR input: it is versioned, capped at 16 KiB, schema checked, and rejects connector/provider/signature/token material. Privileged actions always consult current live connector state.

EIP-1193 event validation, duplicate coalescing, and stale connector-generation discarding remain @wagmi/core responsibilities. The Octane binding subscribes to the core's normalized store; it does not intercept raw provider events or claim a second normalization implementation.

SSR

Set ssr: true on the Wagmi config and pass the validated state as initialState. WagmiProvider follows Wagmi's split hydration contract: non-SSR configs mount immediately, while SSR configs reconnect after hydration.

RainbowKit compatibility gate

RainbowKit 2.2.x declares Wagmi v2 peers, but its defining RainbowKitProvider, ConnectButton.Custom, and useConnectModal state can be derived honestly from this v3 surface. The test suite proves the critical disconnected → connecting → connected sequence with a deterministic connector. The actual UI/modal implementation belongs to the stacked RainbowKit package.

No test needs a wallet secret, production RPC, or funded account.