# Vilna Widget

The Vilna Widget is a browser extension wallet that integrates directly with the Vilna dashboard. It lets you store private keys locally in your browser and sign transactions with one click - without ever exposing your keys to Vilna servers or any third party.

## What is the Vilna Widget

The Widget is a browser extension available for Chrome, Firefox, and Opera. Once installed, it acts as a local wallet that connects to your Vilna dashboard.

- **Local key storage** - your private keys are stored in the browser and never leave your device
- **Dashboard integration** - addresses you add to the Widget appear automatically on the Vilna dashboard with full balance information
- **One-click signing** - initiate transactions from the dashboard, confirm them in the Widget popup
- **Multi-chain** - supports Ethereum, BNB Smart Chain, and TRON networks (mainnet and testnet)


## Why use the Widget

The Widget keeps your private keys in your browser so you can sign transactions without switching to a separate wallet app. It supports HD wallets (create or import via mnemonic seed phrase) and manages addresses across Ethereum, BSC, and TRON from a single extension. See the [Security model](#security-model) section below for details on how keys are protected.

## How it works

1. **Install** the Vilna Widget from your browser's extension store.
2. **Create or import a wallet.** Generate a new HD wallet or import an existing one using your mnemonic seed phrase.
3. **Your addresses appear** in the Widget and become available on the Vilna dashboard with full balance details.
4. **Initiate a transaction** from the Vilna dashboard when you need to send funds.
5. **Review the details.** The Widget popup appears showing the recipient, amount, network, and estimated fees.
6. **Confirm.** The Widget signs the transaction locally using your private key.
7. **Broadcast.** The signed transaction is sent to the blockchain.
8. **Track status.** Monitor the transaction in real-time through Vilna's indexing and monitoring tools.


Your private key is used only at step 6, inside the extension, on your device. It is never transmitted anywhere.

## Supported networks

| Network | Mainnet | Testnet |
|  --- | --- | --- |
| Ethereum | eip155:1 | eip155:11155111 (Sepolia) |
| BNB Smart Chain | eip155:56 | eip155:97 |
| TRON | tron:728126428 | tron:2494104990 (Shasta) |


## Use cases

### For traders

Manage multiple wallets across chains. See all balances in one place on the Vilna dashboard. Execute trades and transfers without switching between wallet apps or browser tabs.

### For businesses

Treasury managers can review and approve outgoing payments directly from the dashboard. One-click signing from the dashboard removes the manual step of switching to an external wallet, reducing copy-paste errors.

### For developers

Test transactions during integration development. Use testnet support to verify that your webhook handlers receive correct notifications and that your application processes transaction events properly.

## For developers: technical integration

If you are building a web application that needs to interact with the Widget programmatically, use the `@vilna-io/storage-client` npm package:


```bash
npm install @vilna-io/storage-client
```


```typescript
import { connect } from "@vilna-io/storage-client";

const client = await connect();

// Check supported networks
const networks = await client.getSupportedNetworks();

// Send a transaction (triggers Widget popup for user confirmation)
const result = await client.sendTransaction({
  chainId: "eip155:1",
  address: "0xYourAddress...",
  derivationPath: "m/44'/60'/0'/0/0",
  transaction: {
    to: "0xRecipient...",
    value: "1000000000000000000", // 1 ETH in Wei
  },
});
```

The storage-client library handles communication between your web app and the Widget extension. See the [storage-client documentation](/guides/storage-client) for the full API reference.

## Security model

- Private keys are stored in encrypted browser storage, isolated to the extension.
- Keys never leave the browser - they are not sent to Vilna servers and not transmitted over the network.
- Transaction signing happens entirely within the extension process.
- The Widget only communicates signed transactions (not private keys) to the blockchain.
- Content Security Policy is enforced to prevent injection attacks.


## Getting started

Available for Chrome, Firefox, and Opera.

1. Install the Vilna Widget extension for your browser.
2. Create a new HD wallet or import an existing one with your seed phrase.
3. Connect to the Vilna dashboard - your addresses and balances will appear automatically.
4. Start managing your assets and signing transactions.


For questions or support, contact support@vilna.io.

## Further reading

Storage Client
npm package for programmatic interaction with the Widget

TypeScript SDK
Official API client for server-side blockchain operations

Blockchain Basics
Keys, addresses, and HD wallet fundamentals