Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

chaingate-react

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chaingate-react

React hooks and providers for ChainGate — integrate multi-chain cryptocurrency wallets into React apps with two hooks. Create, import, and manage wallets across Bitcoin, Ethereum, and 30+ blockchains with zero boilerplate and automatic state synchronizati

latest
Source
npmnpm
Version
1.2.0
Version published
Weekly downloads
55K
-17.64%
Maintainers
1
Weekly downloads
 
Created
Source

ChainGate

chaingate-react

React hooks and providers for the ChainGate cryptocurrency SDK.

Build Test Publish npm version npm downloads Documentation Get API Key React >= 18 TypeScript

📦 ChainGate SDK   |   📖 Documentation   |   🔑 Get your free API key

Features

  • 👛 Wallet state management -- Create, import, restore, and close wallets via React context
  • ChainGate provider -- Initialize and share the API client across your component tree
  • 🪝 Two hooks, zero boilerplate -- useWallet() and useChainGate() for everything
  • 🔄 Auto-sync -- Wallet state updates are immediately available in all components

Install

npm install chaingate-react chaingate react

Examples

Setup Providers

import { ChainGateProvider, WalletProvider } from 'chaingate-react';

function App() {
  return (
    <ChainGateProvider>
      <WalletProvider>
        <YourApp />
      </WalletProvider>
    </ChainGateProvider>
  );
}

Initialize the API Client

import { useChainGate } from 'chaingate-react';
import { useEffect } from 'react';

function Init() {
  const { initializeChainGate } = useChainGate();

  useEffect(() => {
    initializeChainGate({ apiKey: 'your-api-key' });
  }, []);

  return null;
}

Create a Wallet

import { useWallet } from 'chaingate-react';

function CreateWallet() {
  const { newWallet } = useWallet();

  const handleCreate = () => {
    const { phrase, wallet } = newWallet();
    console.log('Mnemonic:', phrase);
    // wallet is now available across the app via useWallet().wallet
  };

  return <button onClick={handleCreate}>Create Wallet</button>;
}

Import a Wallet

import { useWallet } from 'chaingate-react';

function ImportWallet() {
  const { importWallet, createWalletFromString } = useWallet();

  // From mnemonic
  importWallet({ phrase: 'abandon abandon abandon ...' });

  // From private key
  importWallet({ privateKey: '0x...' });

  // From xpub (view-only)
  importWallet({ xpub: 'xpub...' });

  // Auto-detect any format
  createWalletFromString('xprv9s21ZrQH143K...');
}

Check Balance

import { useChainGate, useWallet } from 'chaingate-react';

function Balance() {
  const { chaingate } = useChainGate();
  const { wallet } = useWallet();

  const getBalance = async () => {
    if (!chaingate || !wallet) return;
    const eth = chaingate.connect(chaingate.networks.ethereum, wallet);
    const { confirmed } = await eth.addressBalance();
    console.log(confirmed.base(), confirmed.symbol);
  };

  return <button onClick={getBalance}>Get ETH Balance</button>;
}

Send a Transaction

const { chaingate } = useChainGate();
const { wallet } = useWallet();

const send = async () => {
  if (!chaingate || !wallet) return;
  const eth = chaingate.connect(chaingate.networks.ethereum, wallet);
  const amount = chaingate.networks.ethereum.amount('0.1');
  const tx = await eth.transfer(amount, '0xRecipient...');
  tx.setFee('high');
  const broadcasted = await tx.signAndBroadcast();
  broadcasted.onConfirmed((details) => {
    console.log('Confirmed in block', details.blockHeight);
  });
};

Connect to Any EVM Chain

const bsc = chaingate.networks.evmRpc({
  rpcUrl: 'https://bsc-dataseed.binance.org',
  chainId: 56,
  name: 'BNB Smart Chain',
  symbol: 'BNB',
});

const conn = chaingate.connect(bsc, wallet);

Restore an Encrypted Wallet

import { useWallet } from 'chaingate-react';

function RestoreWallet() {
  const { deserializeWallet } = useWallet();

  const restore = () => {
    const saved = JSON.parse(localStorage.getItem('wallet')!);
    deserializeWallet(saved, async () => {
      return window.prompt('Enter your wallet password:');
    });
  };

  return <button onClick={restore}>Restore Wallet</button>;
}

Close Wallet

const { closeWallet } = useWallet();

<button onClick={closeWallet}>Log Out</button>

📖 Read the full docs

Keywords

react

FAQs

Package last updated on 06 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts