
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
@lykhoyda/gelato-wallet-ui
Advanced tools
Production-ready React Smart components for Web3 wallet interfaces with Gelato SDK integration
Production-ready React component library for Web3 wallet interfaces with Gelato SDK integration. Build gasless Web3 experiences with beautiful, customizable components.
This library includes a comprehensive Storybook for interactive component development and testing. Storybook provides a visual catalog of all components with their various states and configurations.
# Start Storybook development server
yarn storybook
# Storybook will open automatically at http://localhost:6006
# Build static Storybook for deployment
yarn build-storybook
# Output will be in storybook-static/ directory
Each component story includes:
Visit Storybook to explore all components and their variations interactively!
Note: This library requires React 19 or higher.
yarn add @lykhoyda/gelato-wallet-ui
# or
npm install @lykhoyda/gelato-wallet-ui
# or
pnpm add @lykhoyda/gelato-wallet-ui
This library does NOT include any API keys or environment variables.
Your application MUST provide:
The library will throw errors if these are not provided. The default network is Ink Sepolia; you can opt into additional chains via the chains prop.
import { GelatoProvider, GelatoSmartWalletConnectButton } from '@lykhoyda/gelato-wallet-ui';
import '@lykhoyda/gelato-wallet-ui/style.css';
// Your app must provide these values (e.g., from your .env file)
const GELATO_CONFIG = {
sponsorApiKey: process.env.NEXT_PUBLIC_GELATO_API_KEY!, // Required
dynamicEnvironmentId: process.env.NEXT_PUBLIC_DYNAMIC_ID!, // Required
rpcUrl: process.env.NEXT_PUBLIC_RPC_URL, // Optional (applies to all chains)
};
function App() {
return (
<GelatoProvider config={GELATO_CONFIG}>
{/* REQUIRED: Use SDK's button for authentication */}
<GelatoSmartWalletConnectButton>
<button className="px-4 py-2 bg-purple-600 rounded">Connect Wallet</button>
</GelatoSmartWalletConnectButton>
</GelatoProvider>
);
}
import { WalletCard, ActivityLog } from '@lykhoyda/gelato-wallet-ui';
function Dashboard() {
return (
<>
<WalletCard />
<ActivityLog />
</>
);
}
Main wallet interface component showing connection status, balance, and actions.
<WalletCard showBalances={true} showNetwork={true} />
Modal for displaying and selecting gas payment options.
<GasEstimationModal isOpen={isOpen} onClose={() => setIsOpen(false)} estimatedGas={gasAmount} />
Transaction history and activity display with automatic fetching from useMintToken hook.
<ActivityLog maxEntries={5} />
By default, GelatoProvider configures the SDK for Ink Sepolia. To support additional networks, pass the chains prop with any viem chains (for example, Base Sepolia and Sepolia):
import { GelatoProvider, GelatoSmartWalletConnectButton } from '@lykhoyda/gelato-wallet-ui';
import { inkSepolia, baseSepolia, sepolia } from 'viem/chains';
const GELATO_CONFIG = {
sponsorApiKey: process.env.NEXT_PUBLIC_GELATO_API_KEY!,
dynamicEnvironmentId: process.env.NEXT_PUBLIC_DYNAMIC_ID!,
};
export function App() {
return (
<GelatoProvider config={GELATO_CONFIG} chains={[inkSepolia, baseSepolia, sepolia]}>
<GelatoSmartWalletConnectButton>
<button className="px-4 py-2 bg-purple-600 rounded">Connect Wallet</button>
</GelatoSmartWalletConnectButton>
</GelatoProvider>
);
}
Notes:
chains is omitted.switchNetwork from the provider context or via your own UI.Primary hook for accessing the Gelato client and session state.
Note: The SDK does not expose a programmatic connect API. Use <GelatoSmartWalletConnectButton> to open the authentication modal.
import { useGelatoClient, ConnectButton } from '@lykhoyda/gelato-wallet-ui';
function Actions() {
const { client, account, isConnected, logout, switchNetwork } = useGelatoClient();
if (!client || !account || !isConnected) {
return <ConnectButton />;
}
// Example: switch network or logout
return (
<div>
<button onClick={() => switchNetwork?.(763373)}>Switch to Ink Sepolia</button>
<button onClick={() => logout()}>Logout</button>
</div>
);
}
Hook for minting tokens with gasless transactions.
const { mintSponsored, mintWithERC20, isMinting, error } = useMintToken();
// Gasless minting (sponsored)
await mintSponsored();
// Or pay with ERC-20 tokens
await mintWithERC20('USDC');
# Install dependencies
yarn install
# Start development server
yarn dev
# Build library
yarn build
# Type check
yarn type-check
# Run linter
yarn lint
This library includes a comprehensive Storybook for interactive component development and testing. Storybook provides a visual catalog of all components with their various states and configurations.
# Start Storybook development server
yarn storybook
# Storybook will open automatically at http://localhost:6006
# Build static Storybook for deployment
yarn build-storybook
# Output will be in storybook-static/ directory
Each component story includes:
Visit Storybook to explore all components and their variations interactively!
This library is built with:
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
MIT © Gelato Network
FAQs
Production-ready React Smart components for Web3 wallet interfaces with Gelato SDK integration
We found that @lykhoyda/gelato-wallet-ui demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.