{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["cards","card"]},"type":"markdown"},"seo":{"title":"Storage Client - Vilna Wallet Integration","projectTitle":"Vilna Docs","description":"npm package for connecting web applications to the Vilna Storage browser extension for wallet operations and transaction signing.","siteUrl":"https://docs.vilna.io","keywords":["crypto asset management","blockchain monitoring","digital asset security","cryptocurrency API","wallet tracking","blockchain analytics","enterprise crypto","real-time blockchain","CAIP-19","BIP44"],"lang":"en-US","image":"https://cdn.vilna.io/docs/previews/guides.png","meta":[{"name":"og:type","content":"website"},{"name":"og:site_name","content":"Vilna Documentation"},{"name":"og:image:width","content":"1200"},{"name":"og:image:height","content":"630"},{"name":"twitter:card","content":"summary_large_image"}],"llmstxt":{"title":"Vilna API Documentation","description":"Vilna is a blockchain monitoring and wallet management platform. It provides a single unified REST API for tracking addresses, transactions, balances, and activity across top blockchains - Bitcoin, Ethereum, Solana, TRON, TON, Cosmos, and others. The API uses CAIP-2/CAIP-19 standards for cross-chain identification, HD wallet management (BIP-32/44) for address derivation, and RFC 7807 for error responses. Authentication is via API key in the X-Api-Key header.\n","excludeFiles":["legal/**/*.md","@l10n/**/*.md"],"sections":[{"title":"Overview","description":"What Vilna is, supported blockchains, and target audience","includeFiles":["overview.md"],"excludeFiles":[]},{"title":"Getting Started","description":"Quickstart guide and core API concepts","includeFiles":["guides/quickstart.md","guides/dashboard.md","guides/core-concepts.md","guides/authentication.md"],"excludeFiles":[]},{"title":"API Reference","description":"Platform API and Management API endpoint documentation","includeFiles":["apis/platform/index.md","apis/mgmt/index.md","apis/rpc/index.md","apis/platform/api.yaml","apis/mgmt/api.yaml"],"excludeFiles":[]},{"title":"Developer Guides","description":"Integration patterns, events, notifications, SDK, and error handling","includeFiles":["guides/events.md","guides/channels.md","guides/integration-patterns.md","guides/sdk.md","guides/mcp.md","guides/errors.md","guides/simulation.md","guides/invoices.md"],"excludeFiles":[]},{"title":"Business","description":"Value proposition, use cases, and onboarding","includeFiles":["business/index.md","business/use-cases.md"],"excludeFiles":[]},{"title":"Optional","description":"Additional reference material","includeFiles":["guides/blockchain-basics.md","guides/faq.md","apis/mgmt/guide.md","guides/widget.md","guides/storage-client.md","apis/platform/caip-standards.md","apis/mgmt/authorization.md"],"excludeFiles":[]}],"hide":false},"priority":0.5,"jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://docs.vilna.io/"},{"@type":"ListItem","position":2,"name":"Guides"},{"@type":"ListItem","position":3,"name":"Storage Client"}]},{"@type":"TechArticle","headline":"Storage Client - Vilna Wallet Integration","description":"npm package for connecting web applications to the Vilna Storage browser extension for wallet operations and transaction signing.","url":"https://docs.vilna.io/guides/storage-client","datePublished":"2025-09-17","dateModified":"2026-03-09","proficiencyLevel":"Intermediate","dependencies":"npm, Vilna Storage extension","image":"https://cdn.vilna.io/docs/previews/guides.png","author":{"@id":"https://vilna.io/#organization"},"publisher":{"@id":"https://vilna.io/#organization"}}]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"storage-client","__idx":0},"children":["Storage client"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["@vilna-io/storage-client"]}," npm package connects web applications to the Vilna Storage browser extension for wallet operations such as network queries, address validation, and transaction signing. The browser extension it connects to is in development and not yet available to customers."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Package:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://www.npmjs.com/package/@vilna-io/storage-client"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["@vilna-io/storage-client"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["License:"]}," MIT"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Environment:"]}," Browser only (requires ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["window"]},")"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"installation","__idx":1},"children":["Installation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"npm install @vilna-io/storage-client\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"quick-start","__idx":2},"children":["Quick start"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"import { connect } from \"@vilna-io/storage-client\";\n\nconst client = await connect();\n\nconst networks = await client.getSupportedNetworks();\n// ['eip155:1', 'eip155:56', 'tron:728126428', ...]\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["connect()"]}," function creates a client, detects the extension, and returns a ready-to-use instance. If the extension is not installed it throws ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VilnaStorageNotFoundError"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"core-methods","__idx":3},"children":["Core methods"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Method"},"children":["Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Returns"},"children":["Returns"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["connect()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Promise<VilnaStorageClient>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create and connect a client in one step"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.getSupportedNetworks()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Promise<string[]>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["List supported chain IDs in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md"},"children":["CAIP-2"]}," format"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.isAvailableAddress(params)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Promise<boolean>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check if an address exists in the wallet"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.sendTransaction(params)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Promise<{ transactionId: string }>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Open extension popup for signing"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.isConnected()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["boolean"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check connection status"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.on(event, handler)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["this"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Subscribe to extension events"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.removeListener(event, handler)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["this"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Unsubscribe from events"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.disconnect()"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["void"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Disconnect and clean up"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"checking-address-availability","__idx":4},"children":["Checking address availability"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"const isAvailable = await client.isAvailableAddress({\n  address: \"0x742d35Cc6634C0532925a3b844Bc9e7595f7B123\",\n  derivationPath: \"m/44'/60'/0'/0/0\",\n});\n\nif (isAvailable) {\n  // Address exists in the connected wallet\n}\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sending-transactions","__idx":5},"children":["Sending transactions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sendTransaction"]}," method opens the extension popup where the user reviews and confirms the transaction."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"evm-transaction","__idx":6},"children":["EVM transaction"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"const result = await client.sendTransaction({\n  chainId: \"eip155:1\",\n  address: \"0x742d35Cc6634C0532925a3b844Bc9e7595f7B123\",\n  derivationPath: \"m/44'/60'/0'/0/0\",\n  transaction: {\n    to: \"0xRecipientAddress\",\n    value: \"1000000000000000000\", // 1 ETH in Wei\n    tokenType: \"native\",\n  },\n});\n\nconsole.log(\"Transaction ID:\", result.transactionId);\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"evm-token-transfer","__idx":7},"children":["EVM token transfer"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"const result = await client.sendTransaction({\n  chainId: \"eip155:1\",\n  address: \"0x742d35Cc6634C0532925a3b844Bc9e7595f7B123\",\n  derivationPath: \"m/44'/60'/0'/0/0\",\n  transaction: {\n    tokenType: \"usdt\",\n    tokenAddress: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n    tokenAmount: \"1000000\", // 1 USDT (6 decimals)\n    to: \"0xRecipientAddress\",\n  },\n});\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"tron-transaction","__idx":8},"children":["TRON transaction"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"const result = await client.sendTransaction({\n  chainId: \"tron:728126428\",\n  address: \"TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH\",\n  derivationPath: \"m/44'/195'/0'/0/0\",\n  transaction: {\n    to_address: \"TRecipientAddress\",\n    amount: 1000000, // 1 TRX in Sun\n    tokenType: \"native\",\n  },\n});\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"event-handling","__idx":9},"children":["Event handling"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"client.on(\"accountsChanged\", (accounts) => {\n  console.log(\"Accounts changed:\", accounts);\n});\n\nclient.on(\"chainChanged\", (chainId) => {\n  console.log(\"Chain changed:\", chainId);\n});\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"supported-networks","__idx":10},"children":["Supported networks"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Network"},"children":["Network"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Chain ID"},"children":["Chain ID"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ethereum Mainnet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eip155:1"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ethereum Sepolia"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eip155:11155111"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["BNB Smart Chain"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eip155:56"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["BNB Testnet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eip155:97"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TRON Mainnet"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tron:728126428"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["TRON Shasta"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["tron:2494104990"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Call ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client.getSupportedNetworks()"]}," at runtime for the current list."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"utility-functions","__idx":11},"children":["Utility functions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The package exports several utility namespaces for common validation tasks:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"import { validationUtils, envUtils } from \"@vilna-io/storage-client\";\n\n// Validate a CAIP-2 chain ID\nvalidationUtils.isValidChainId(\"eip155:1\"); // true\n\n// Validate address formats\nvalidationUtils.isValidEthereumAddress(\"0x742d35Cc6634C0532925a3b844Bc9e7595f7B123\"); // true\nvalidationUtils.isValidTronAddress(\"TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH\"); // true\n\n// Validate BIP-32 derivation path\nvalidationUtils.isValidDerivationPath(\"m/44'/60'/0'/0/0\"); // true\n\n// Check if running in browser\nenvUtils.isBrowser(); // true/false\n\n// Check if extension is installed\nenvUtils.isVilnaStorageAvailable(); // true/false\n\n// Wait for extension to load (with timeout)\nawait envUtils.waitForVilnaStorage(5000);\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-handling","__idx":12},"children":["Error handling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The package defines three error classes:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Error"},"children":["Error"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Code"},"children":["Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"When"},"children":["When"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VilnaStorageNotFoundError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EXTENSION_NOT_FOUND"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Extension is not installed"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VilnaStorageConnectionError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONNECTION_ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Extension detected but connection failed"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VilnaStorageError"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["varies"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Base class for all storage errors"]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"import {\n  connect,\n  VilnaStorageNotFoundError,\n  VilnaStorageConnectionError,\n} from \"@vilna-io/storage-client\";\n\ntry {\n  const client = await connect();\n} catch (err) {\n  if (err instanceof VilnaStorageNotFoundError) {\n    // Prompt user to install the extension\n  } else if (err instanceof VilnaStorageConnectionError) {\n    // Extension found but not responding\n  }\n}\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"further-reading","__idx":13},"children":["Further reading"]},{"$$mdtype":"Tag","name":"Cards","attributes":{"columns":2,"cardMinWidth":240},"children":[{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Vilna Widget","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/guides/widget"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Browser extension overview and integration flow"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"TypeScript SDK","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/guides/sdk"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Official API client for server-side operations"]}]},{"$$mdtype":"Tag","name":"Card","attributes":{"title":"Platform API","imagePosition":"start","iconPosition":"auto","layout":"vertical","align":"start","variant":"filled","to":"/apis/platform/"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Complete endpoint documentation"]}]}]}]},"headings":[{"value":"Storage client","id":"storage-client","depth":1},{"value":"Installation","id":"installation","depth":2},{"value":"Quick start","id":"quick-start","depth":2},{"value":"Core methods","id":"core-methods","depth":2},{"value":"Checking address availability","id":"checking-address-availability","depth":2},{"value":"Sending transactions","id":"sending-transactions","depth":2},{"value":"EVM transaction","id":"evm-transaction","depth":3},{"value":"EVM token transfer","id":"evm-token-transfer","depth":3},{"value":"TRON transaction","id":"tron-transaction","depth":3},{"value":"Event handling","id":"event-handling","depth":2},{"value":"Supported networks","id":"supported-networks","depth":2},{"value":"Utility functions","id":"utility-functions","depth":2},{"value":"Error handling","id":"error-handling","depth":2},{"value":"Further reading","id":"further-reading","depth":2}],"frontmatter":{"seo":{"title":"Storage Client - Vilna Wallet Integration","description":"npm package for connecting web applications to the Vilna Storage browser extension for wallet operations and transaction signing.","priority":0.5,"image":"https://cdn.vilna.io/docs/previews/guides.png","jsonLd":{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://docs.vilna.io/"},{"@type":"ListItem","position":2,"name":"Guides"},{"@type":"ListItem","position":3,"name":"Storage Client"}]},{"@type":"TechArticle","headline":"Storage Client - Vilna Wallet Integration","description":"npm package for connecting web applications to the Vilna Storage browser extension for wallet operations and transaction signing.","url":"https://docs.vilna.io/guides/storage-client","datePublished":"2025-09-17","dateModified":"2026-03-09","proficiencyLevel":"Intermediate","dependencies":"npm, Vilna Storage extension","image":"https://cdn.vilna.io/docs/previews/guides.png","author":{"@id":"https://vilna.io/#organization"},"publisher":{"@id":"https://vilna.io/#organization"}}]}}},"lastModified":"2026-05-26T20:25:55.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/storage-client","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}