Skip to content
ChainFoundry

Multichain dApps

Add any chain in hours, not weeks

Build wallets, DEX aggregators, and portfolio trackers across 7 blockchain architectures with one library. Rust, TypeScript, Python, Go, Java, WASM.

The scenario

You're building a multichain wallet, a DEX aggregator, a portfolio tracker, or a bridge monitoring dashboard. Every time you add support for a new chain, you need:

  • A new RPC client with retry logic, rate limiting, and failover
  • A new ABI decoder for that chain's event format
  • A new indexer for historical data
  • New error handling for that chain's failure modes

The problem today

Adding Solana to an EVM app
You go from ethers.js/Alloy to @solana/web3.js — completely different API, different data model, different error handling.
Adding Cosmos
Now you need cosmjs — yet another library, another learning curve.
Each chain = weeks of integration work
Provider setup, error handling, retry logic, rate limiting — you rebuild the same plumbing every time.
6 languages, no shared solution
Your Rust backend uses Alloy. Your TypeScript frontend uses viem. Your Python analytics pipeline uses web3.py. None of them share a common interface.

How ChainFoundry solves it

typescript
import { ChainClient } from class="tok-s">'@chainfoundry/chainrpc';
import { EvmDecoder, SolanaDecoder } from class="tok-s">'@chainfoundry/chaincodec';

class="tok-c">// Same API, different chains
const eth = ChainClient.evm(class="tok-s">"https://eth-rpc.example.com");
const sol = ChainClient.solana(class="tok-s">"https://sol-rpc.example.com");
const cosmos = ChainClient.cosmos(class="tok-s">"https://cosmos-rpc.example.com");

class="tok-c">// Same decode pattern, different architectures
const ethEvent = EvmDecoder.decode(ethLog, uniswapSchema);
const solEvent = SolanaDecoder.decode(solLog, raydiumSchema);

class="tok-c">// Same middleware stack everywhere
class="tok-c">// Circuit breaker, rate limiting, caching, failover — all built in

What changes for you

  • Hours, not weeks to add a new chain
  • One API across Rust, TypeScript, Python, Go, Java, and WASM
  • Production middleware built in — you don't write retry logic, failover, rate limiting, or cache invalidation ever again
  • Embeddable — it's a library in your binary, not a SaaS you depend on

Who this is for

  • Cross-chain wallet teams (Phantom, Backpack, and competitors)
  • DEX aggregators (decoding swaps from Uniswap + Raydium + Osmosis)
  • Portfolio trackers (balances + tx history across all chains)
  • Block explorer teams adding multichain support
  • Bridge monitoring dashboards