Wallet Setup

How to connect your wallet to your appchain and design end‑user wallet UX

Setting up your wallet to interact with your appchain is easy. The simplest way is to use your appchain's block explorer, which provides a one‑click option to add the network to MetaMask or any EVM‑compatible wallet.

Add Your Appchain to MetaMask or Other Wallets

  1. Visit your appchain's block explorer (e.g., https://explorer.your-appchain.syndicate.io).
  2. Connect your wallet.
  3. Click the "Add to MetaMask" or "Add Network" button.
  4. Approve the network addition in your wallet.
  5. Switch between networks in MetaMask by clicking the network dropdown at the top of the wallet. MetaMask will automatically use the correct RPC, chain ID, and currency symbol for the selected network.
  6. You can view and manage your networks in MetaMask's settings under "Networks."

For more information on configuring networks in MetaMask, see the MetaMask Network Configuration Guide.

Design End‑User Wallet UX

  1. Use users' existing wallets (WalletConnect, injected wallets like MetaMask, Coinbase Wallet extension)
  2. Abstract wallets away from users entirely using an embedded wallet provider (e.g., Para), like we do in the Example App

1. Connect Existing Wallets

Below is a minimal setup using wagmi with WalletConnect and injected wallets. Replace rpcUrl, chainId, and currency with your appchain values.

const appchain = {
  id: 12345, // your appchain id
  name: "Your Appchain",
  nativeCurrency: { name: "Token", symbol: "TOK", decimals: 18 },
  rpcUrls: { default: { http: ["https://rpc.your-appchain.syndicate.io"] } },
};
 
const wagmiConfig = createConfig({
  chains: [appchain],
  transports: { [appchain.id]: http("https://rpc.your-appchain.syndicate.io") },
  connectors: [
    injected({ shimDisconnect: true }),
    walletConnect({ projectId: "YOUR_WC_PROJECT_ID" }),
  ],
  ssr: true,
});

2. Embedded Wallets

If you prefer a seamless, no‑extension onboarding, use embedded wallets (e.g. Para). This is how the Example App (Adrift) onboards users.

const appchain = {
  id: 12345, // your appchain id
  name: 'Your Appchain',
  nativeCurrency: { name: 'Token', symbol: 'TOK', decimals: 18 },
  rpcUrls: { default: { http: ['https://rpc.your-appchain.syndicate.io'] } },
}
 
<ParaProviderBase
  config={{ appName: 'Your App' }}
  externalWalletConfig={{
    wallets: [],
    evmConnector: { config: { chains: [appchain], ssr: true } },
  }}
  paraClientConfig={{ apiKey: process.env.NEXT_PUBLIC_PARA_API_KEY, env: 'production' }}
>
  {children}
</ParaProviderBase>

Once connected, use viem clients from Para to sign and send transactions to your appchain.

See a full walkthrough in the Example App guide: Wallet Setup (Example App)

On this page