
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
Try dApps safely with a one-click disposable wallet before you connect your main wallet
A disposable embedded Web3 wallet that lets users try your dApp before connecting their actual wallet. Perfect for previewing, testing, and demo purposes on any EVM chain.
TryFi is the only wallet that lets users safely test your dApp without any risk:
Perfect for demos, onboarding new users, testing on mainnet, or showcasing dApps without asking users to risk their real wallets.
Zero Dependencies Setup! TryFi now bundles all dependencies (ethers.js, qrious) internally with proper namespace isolation. This means:
Option A: CDN (Easiest)
<!-- Single script - no additional dependencies needed! -->
<script src="https://unpkg.com/tryfi@latest/dist/tryfi.umd.js"></script>
Option B: NPM Install
# Single package - ethers and qrious are bundled internally
npm install tryfi
Single line of code - that's it!
// Minimal setup (works immediately)
TryFi.init({
chainName: 'Ethereum Mainnet',
rpcUrl: 'https://ethereum-rpc.publicnode.com',
chainId: 1,
nativeCurrency: {
name: 'Ethereum',
symbol: 'ETH',
decimals: 18
},
blockExplorerUrls: ['https://etherscan.io']
});
That's it! TryFi will appear as a wallet device in the bottom-right corner. Users can click it to create and use disposable wallets.
TryFi.init({
// Required: Network details
chainName: 'Ethereum Mainnet', // Display name for your network
rpcUrl: 'https://your-rpc-url.com', // RPC endpoint
chainId: 1, // Chain ID (number)
nativeCurrency: {
name: 'Ethereum',
symbol: 'ETH',
decimals: 18
},
blockExplorerUrls: ['https://etherscan.io'],
// Optional: Customize appearance and behavior
position: 'bottom-right', // Widget position
theme: 'default', // UI theme
faucetUrl: 'https://faucet.com', // Testnet faucet link
iconUrls: []
});
'bottom-right' (default) - Bottom right corner'bottom-left' - Bottom left corner'top-right' - Top right corner'top-left' - Top left corner'hidden' - Hidden by default (show programmatically)'default' - Clean light theme'default-dark' - Dark theme'glassmorphism' - Modern glass effectTryFi.init({
chainName: 'Ethereum Mainnet',
rpcUrl: 'https://ethereum-rpc.publicnode.com',
chainId: 1,
position: 'bottom-right',
theme: 'default',
nativeCurrency: {
name: 'Ethereum',
symbol: 'ETH',
decimals: 18
},
blockExplorerUrls: ['https://etherscan.io']
});
TryFi.init({
chainName: 'Polygon',
rpcUrl: 'https://polygon-rpc.com',
chainId: 137,
theme: 'glassmorphism',
nativeCurrency: {
name: 'Polygon',
symbol: 'MATIC',
decimals: 18
},
blockExplorerUrls: ['https://polygonscan.com']
});
TryFi.init({
chainName: 'Sepolia Testnet',
rpcUrl: 'https://sepolia.infura.io/v3/YOUR_KEY',
chainId: 11155111,
position: 'bottom-left',
theme: 'default-dark',
faucetUrl: 'https://sepoliafaucet.com',
nativeCurrency: {
name: 'Sepolia Ether',
symbol: 'SEP',
decimals: 18
},
blockExplorerUrls: ['https://sepolia.etherscan.io']
});
TryFi.init({
chainName: 'Arbitrum One',
rpcUrl: 'https://arb1.arbitrum.io/rpc',
chainId: 42161,
nativeCurrency: {
name: 'Ethereum',
symbol: 'ETH',
decimals: 18
},
blockExplorerUrls: ['https://arbiscan.io']
});
// Show the widget
TryFi.show();
// Hide the widget
TryFi.hide();
// Toggle visibility
TryFi.toggle();
// Clean up (removes from DOM)
TryFi.destroy();
// Switch themes on the fly
function switchTheme(newTheme) {
TryFi.destroy();
TryFi.init({
chainName: 'Ethereum Mainnet',
rpcUrl: 'https://ethereum-rpc.publicnode.com',
chainId: 1,
theme: newTheme // 'default', 'default-dark', 'glassmorphism'
});
}
TryFi is designed to work alongside your existing wallet connection logic without any changes.
// Your existing wallet setup
import { createWeb3Modal } from '@web3modal/wagmi'
// Add TryFi (doesn't interfere with existing wallets)
TryFi.init({
chainName: 'Ethereum Mainnet',
rpcUrl: 'https://ethereum-rpc.publicnode.com',
chainId: 1,
position: 'bottom-left' // Keep separate from your main connect button
});
// Your existing logic works unchanged
const modal = createWeb3Modal({...})
// Your existing code
async function connectWallet() {
if (window.ethereum) {
const provider = new ethers.BrowserProvider(window.ethereum);
// ... your logic
}
}
// TryFi provides window.ethereum automatically when active
TryFi.init({
chainName: 'Polygon',
rpcUrl: 'https://polygon-rpc.com',
chainId: 137
});
TryFi.init({
chainName: 'Ethereum Mainnet',
rpcUrl: 'https://ethereum-rpc.publicnode.com', // Use reliable RPC
chainId: 1,
position: 'bottom-right',
theme: 'default',
faucetUrl: null, // No faucet for mainnet
nativeCurrency: {
name: 'Ethereum',
symbol: 'ETH',
decimals: 18
},
blockExplorerUrls: ['https://etherscan.io']
});
const chains = {
ethereum: {
chainName: 'Ethereum',
rpcUrl: 'https://ethereum-rpc.publicnode.com',
chainId: 1,
symbol: 'ETH'
},
polygon: {
chainName: 'Polygon',
rpcUrl: 'https://polygon-rpc.com',
chainId: 137,
symbol: 'MATIC'
}
};
function initTryFi(chain) {
TryFi.destroy();
TryFi.init({
chainName: chains[chain].chainName,
rpcUrl: chains[chain].rpcUrl,
chainId: chains[chain].chainId,
nativeCurrency: {
name: chains[chain].chainName,
symbol: chains[chain].symbol,
decimals: 18
}
});
}
Works everywhere - no extensions required:
# Clone the repository
git clone https://github.com/your-org/tryfi
cd tryfi
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
tryfi/
├── src/
│ ├── index.js # Main entry point & API
│ ├── TryFiWallet.js # Core wallet implementation
│ └── themes/ # UI themes
│ ├── default.js
│ ├── default-dark.js
│ └── glassmorphism.js
├── dist/ # Built files
├── demo-updated.html # Live demo
└── package.json
We welcome contributions! TryFi is completely open source.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT License - see LICENSE file for details.
Ready to let users try your dApp risk-free? Add just these two lines:
<!-- Single script - all dependencies bundled! -->
<script src="https://unpkg.com/tryfi@latest/dist/tryfi.umd.js"></script>
<script>
TryFi.init({
chainName: 'Ethereum Mainnet',
rpcUrl: 'https://ethereum-rpc.publicnode.com',
chainId: 1,
nativeCurrency: {
name: 'Ethereum',
symbol: 'ETH',
decimals: 18
},
blockExplorerUrls: ['https://etherscan.io']
});
</script>
That's it! Your users can now safely try your dApp with disposable wallets. No additional dependencies needed!
Made with love for the Web3 community
TryFi - Try before you connect.
FAQs
Try dApps safely with a one-click disposable wallet before you connect your main wallet
We found that tryfi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.