open-index/open-npm huggingface dataset:
npm package: @nowallet/core
Description: Core NoWallet SDK (Mantle Network)
Latest version: 1.0.0

# @nowallet/core

Wallet abstraction SDK for Mantle Network — login with Google, no seed phrases required.

[![npm version](https://img.shields.io/npm/v/@nowallet/core.svg?style=flat-square)](https://www.npmjs.com/package/@nowallet/core)
[![npm downloads](https://img.shields.io/npm/dm/@nowallet/core.svg?style=flat-square)](https://www.npmjs.com/package/@nowallet/core)

## Features

- Social Login — Google OAuth & email OTP authentication
- Zero Wallet Friction — wallets created automatically in the background
- Gas Sponsorship — gasless transactions for end users
- Mantle Native — built for Mantle Network (Chain ID 5000)
- Type-Safe — full TypeScript support with autocomplete

## Installation

```bash
pnpm add @nowallet/core
# or
npm install @nowallet/core
# or
yarn add @nowallet/core
Quick Start
TypeScriptimport { createNoWallet } from '@nowallet/core';

// Initialize client
const client = createNoWallet({
  apiKey: 'nw_live_xxxx',
  chain: 'mantle'
});

// Login with Google
const user = await client.loginWithGoogle(googleToken);
console.log('Wallet:', user.walletAddress);

// Send transaction (gasless)
const tx = await client.sendTransaction({
  to: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
  value: '0.01'
});
console.log('Transaction:', tx.hash);
API Reference
createNoWallet(config)
Initialize the SDK client.
Parameters:

config.apiKey (string, required) — your API key
config.chain (string, optional) — blockchain network (default: 'mantle')
config.apiUrl (string, optional) — custom API endpoint

Returns: NoWalletClient
Authentication

client.loginWithGoogle(token) — Authenticate with Google OAuth token
client.loginWithEmail(email, code) — Authenticate with email OTP
client.logout() — Clear current session
client.getCurrentUser() — Get authenticated user

Wallet Operations

client.getWallet() — Fetch wallet details (address, balance, chainId)
client.getBalance() — Get wallet balance in MNT

Transactions

client.sendTransaction(params) — Send transaction with gas sponsorshipTypeScript{
  to: string;      // recipient address
  value: string;   // amount in MNT
  data?: string;   // optional contract data
}
client.mintNFT(params) — Mint NFT with metadataTypeScript{
  contractAddress: string;
  metadata: {
    name: string;
    description: string;
    image: string;
  }
}
client.getTransactionHistory() — Fetch transaction history

TypeScript Support
TypeScriptimport type { 
  NoWalletConfig, 
  User, 
  Wallet, 
  Transaction 
} from '@nowallet/core';
Network Details

Network: Mantle Mainnet
Chain ID: 5000
RPC: https://rpc.mantle.xyz
Explorer: https://explorer.mantle.xyz

Error Handling
TypeScripttry {
  const user = await client.loginWithGoogle(token);
} catch (error) {
  console.error(error.message);
}
npm package: @nowallet/react
Description: React hooks for NoWallet SDK (Mantle Network)
Latest version: 2.0.1

# @nowallet/react

Social login → automatic wallet → gasless transaction.

**No seed phrase. No MetaMask. No manual wallet selection.**

Users log in with Google/email, and a wallet is automatically created in the background. 
All transactions can be gasless via sponsorship.

[![npm version](https://img.shields.io/npm/v/@nowallet/react?style=flat-square&color=brightgreen)](https://www.npmjs.com/package/@nowallet/react)
[![npm downloads](https://img.shields.io/npm/dm/@nowallet/react?style=flat-square)](https://www.npmjs.com/package/@nowallet/react)

## Features

- 🔐 Social login (Google, email)
- 🎒 Auto wallet creation (no private key needed)
- ⛽ Gasless transactions (sponsored by paymaster)
- ⚛️ React hooks for easy integration
- TypeScript support
- Mantle Network native

## Installation

```bash
pnpm add @nowallet/react @nowallet/core
```

## Quick Start

```tsx
import { NoWalletProvider, useNoWallet, useSendTransaction } from '@nowallet/react';

function App() {
  return (
    <NoWalletProvider config={{ apiKey: 'nw_live_your_key', chain: 'mantle' }}>
      <Dashboard />
    </NoWalletProvider>
  );
}

function Dashboard() {
  const { user, login } = useNoWallet();
  const { send } = useSendTransaction();

  if (!user) {
    return <button onClick={() => login('google', googleToken)}>Login with Google</button>;
  }

  return (
    <div>
      <p>Wallet: {user.walletAddress}</p>
      <button onClick={() => send('0xRecipient', '0.01')}>Send 0.01 MNT (Gasless)</button>
    </div>
  );
}
```

## Available Hooks

- **useNoWallet()** — Main hook (user, login, logout, isLoading, isConnected)
- **useUser()** — User info (user, isConnected)
- **useWallet()** — Wallet data (wallet, address, balance, isConnected)
- **useBalance()** — Balance with refresh (balance, refresh, isLoading)
- **useSendTransaction()** — Send tx (send, isLoading, error, data)
- **useMintNFT()** — Mint NFT (mint, isLoading, error, data)

## Session Persistence

User sessions are automatically saved to `localStorage`. On refresh or revisit, the user stays logged in.

## License

MIT