Viem

createPublicProviderViem(publicClients, fallbackProviders?) → IPublicProvider

Creates a public provider from Viem public clients with optional fallback support.

Parameters

Parameter
Type
Required
Description

publicClients

Record<number, PublicClient | PublicClient[]>

Map of network IDs to Viem public clients

Examples

Basic usage

import { createPublicProviderViem } from '@manifoldxyz/client-sdk';
import { createPublicClient, http } from 'viem';
import { mainnet, base, optimism } from 'viem/chains';

// Create public clients for each network
const publicClients = {
  1: createPublicClient({
    chain: mainnet,
    transport: http('YOUR_MAINNET_RPC_URL')
  }),
  8453: createPublicClient({
    chain: base,
    transport: http('YOUR_BASE_RPC_URL')
  }),
  10: createPublicClient({
    chain: optimism,
    transport: http('YOUR_OPTIMISM_RPC_URL')
  })
};

// Create the public provider
const publicProvider = createPublicProviderViem(publicClients);

// Use with Manifold client
const client = createClient({ publicProvider });

With fallback providers

Browser usage

For browser applications using MetaMask or other injected wallets:

Event Subscription

Subscribe to contract events in real-time using the subscribeToContractEvents method:

Last updated