The Universal Accounts SDK lets you integrate Particle Network’s chain abstraction into your dApp. It provides your users with a unified address and balance across EVM chains and Solana.You can use this SDK to:
  • Allow users with assets on any chain to access your dApp.
  • Give your users a unified assets balance and identity across chains and ecosystems.
  • Execute transactions across chains without bridging or transferring assets.
The SDK is currently only available for Web.
Check out our SDK Reference for detailed platform-specific docs.
Primary Assets are tokens with deep liquidity, used by the Universal Accounts SDK as sources for cross-chain transactions. These assets are used for gas, swaps, and liquidity routing across chains.
Find a list of the supported Primary Assets in the Supported Chains & Primary Assets page.
Users can hold Primary assets on any supported chain. When a transaction (like a swap or transfer) is initiated, the SDK will:
  • Identify the most optimal Primary Asset from the user’s portfolio. For example, it may select USD on Polygon to allow a user to purchase a memecoin on Solana.
  • Route liquidity across all the chains the user holds this Primary Asset using Universal Liquidity.
  • Complete the transaction on the destination chain, even if the user holds no assets on that chain.
Yes. Universal Accounts are ERC-4337 smart account implementations, which means users must deposit assets into them before they can be used.However, if a user already holds funds on another app leveraging Universal Accounts, like UniversalX, those balances will be already available and usable within your dAppTo enable swaps, transfers, or contract calls:
  • Users must hold at least one Primary Asset on their Universal Account.
  • Once deposited, the SDK can route liquidity across supported chains.
No. Universal Accounts are ERC-4337 smart accounts—they don’t have private keys like traditional EOAs (Externally Owned Accounts).Instead, ownership and permissions are managed via a signer (such as a user’s wallet or social login) that authorizes transactions.
Each transaction executed by a UA includes:
  • Standard gas fees for execution on the destination chain
  • A 20 basis points (0.20%) fee paid to the LP (liquidity provider) that facilitates the transaction.
These fees are automatically calculated and included in the transaction quote returned by the SDK. Users don’t need to manage gas tokens—Universal Liquidity handles routing and fee payments behind the scenes.
This error happens because Vite doesn’t polyfill Node.js globals like Buffer in the browser. However, some SDK dependencies (like ethers) may expect it to be available.To fix this, follow these steps:

1. Install required packages

npm install buffer
npm install --save-dev @esbuild-plugins/node-globals-polyfill @esbuild-plugins/node-modules-polyfill
  1. Update your vite.config.ts
vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'
import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill'

export default defineConfig({
  plugins: [react()],
  optimizeDeps: {
    esbuildOptions: {
      define: {
        global: 'globalThis'
      },
      plugins: [
        NodeGlobalsPolyfillPlugin({
          buffer: true
        }),
        NodeModulesPolyfillPlugin()
      ]
    }
  },
  resolve: {
    alias: {
      buffer: 'buffer'
    }
  }
})
Still need help?
Reach out via our Telegram support channel to get direct help from Particle’s Developer Relations team.