<!--
Sitemap:
- [Interop SDK Documentation](/index): Build multichain TypeScript apps with interoperable addresses, cross-chain quotes, transfer execution, and order tracking across providers.
- [Install Interop SDK](/installation): Install @wonderland/interop-addresses and @wonderland/interop-cross-chain, then choose the package that fits your multichain app.
- [Addresses Module](/addresses/): Parse, encode, and resolve chain-aware addresses that combine an account, chain, and optional ENS name into one unambiguous identifier.
- [Addresses: Getting Started](/addresses/getting-started): Parse an interoperable address and extract its components — go from a human-readable name like vitalik.eth@eip155:1 to address and chain ID.
- [Addresses: Concepts](/addresses/concepts): How EIP-7930, ERC-7828, and CAIP-350 combine address and chain into a single, unambiguous, validated identifier for multichain apps.
- [Parsing an Interoperable Name](/addresses/example): Walkthrough for wallet developers — extract the raw address and chain ID from an interop address so legacy contracts keep working.
- [Addresses: Advanced Usage](/addresses/advanced-usage): Advanced patterns for interoperable addresses — checksums, validation, error handling, and round-trip conversions between formats.
- [Addresses: API Reference](/addresses/api): Function signatures and types for the interop-addresses package — high-level helpers, name-layer methods, and binary-layer primitives.
- [Cross-Chain Module](/cross-chain/): One open source integration for cross-chain actions — compare quotes across providers, execute orders, and track completion.
- [Cross-Chain: Getting Started](/cross-chain/getting-started): Execute a cross-chain token transfer end-to-end — create a provider, fetch a quote, send the transaction, and track the order to completion.
- [Cross-Chain: Concepts](/cross-chain/concepts): The intent-based architecture behind the cross-chain package and how the SDK unifies heterogeneous bridge providers behind a common interface.
- [Supported Providers](/cross-chain/providers): Supported cross-chain providers (Across, Relay, OIF, Bungee, LiFi Intents) and how to configure each via createCrossChainProvider.
- [Across Provider](/cross-chain/across-provider): Configure and use the Across Protocol provider for cross-chain token transfers via the Across bridge infrastructure.
- [Relay Provider](/cross-chain/relay-provider): Configure and use the Relay Protocol provider for cross-chain transfers, including opt-in gasless execution via EIP-3009 signatures.
- [OIF Provider](/cross-chain/oif-provider): Direct integration with any OIF-compliant solver — submission modes, resource locks, and configuration for Open Intents Framework backends.
- [Bungee Provider](/cross-chain/bungee-provider): Cross-chain token transfers via Bungee — onchain transactions, gasless permit2 flow, and tier-based API access for sandbox or production.
- [LiFi Intents Provider](/cross-chain/lifi-intents-provider): Cross-chain transfers through the LI.FI intent solver marketplace, where competing solvers fulfill deposits at the best available rate.
- [Cross-Chain: Full Example](/cross-chain/example): End-to-end example of executing a cross-chain transfer — setup, quote, approval handling, transaction submission, and order tracking.
- [Cross-Chain: Frontend Integration](/cross-chain/frontend-integration): Wire the cross-chain SDK into a React/Next.js app with wagmi v2 — a useCrossChainSwap hook covering quotes, approvals, and submission.
- [Order Tracking](/cross-chain/order-tracking): Track cross-chain orders from initiation to completion via OIF OrderStatus events, with both onchain and offchain observation strategies.
- [Cross-Chain: Advanced Usage](/cross-chain/advanced-usage): Aggregator patterns for cross-chain transfers — multi-provider quote fetching, sorting strategies, timeouts, and built-in order tracking.
- [Cross-Chain: API Reference](/cross-chain/api): Function signatures and types for the interop-cross-chain package — providers, aggregator, approval service, and order tracking.
-->

# Addresses Module

:::warning\[Experimental release — not for production use]

This SDK is an early, preview release and has not been audited. It handles transaction and signature data for cross-chain value transfers, so a defect in the SDK could result in permanent, irrecoverable loss of user funds.

Do not use this SDK in production or with real user value.
:::

Ethereum is multichain. An address like `0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045` doesn't tell you *which* chain it's on — and sending to the right address on the wrong chain can mean lost funds.

Interoperable addresses fix this by encoding the **address and the chain together**, so every recipient is unambiguous.

## What it looks like

**For people** — [ERC-7828](https://eips.ethereum.org/EIPS/eip-7828) gives you a readable name that includes the chain:

```
vitalik.eth@ethereum
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045@eip155:10#1A2B3C4D
```

These names support ENS, chain shortnames (like `ethereum` or `base`), and checksums to catch errors.

**For smart contracts** — [EIP-7930](https://eips.ethereum.org/EIPS/eip-7930) gives you a compact binary format optimized for onchain use:

```
0x00010000010114d8da6bf26964af9d7eed9e03e53415d37aa96045
```

Both formats carry the same information and convert back and forth losslessly.

## Quick example

```typescript
import { getAddress, getChainId, parseName } from "@wonderland/interop-addresses";

// Parse a human-readable name into its components
const result = await parseName("vitalik.eth@eip155:1");
// → address: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
// → chain:   eip155:1 (Ethereum mainnet)

// Or grab just the parts you need
const address = await getAddress("vitalik.eth@eip155:1");
const chainId = await getChainId("vitalik.eth@eip155:1");
```

## What the package does

* **Parse** human-readable names like `vitalik.eth@ethereum` into addresses and chain IDs
* **Encode/decode** compact binary addresses for smart contracts
* **Resolve** ENS names and chain shortnames automatically
* **Validate** checksums to catch typos and tampering
* **Convert** between human-readable, structured, and binary formats

## Where to start

| I want to...                 | Go to                                               |
| ---------------------------- | --------------------------------------------------- |
| Try it out                   | [Getting Started](/addresses/getting-started)       |
| Understand the standards     | [Concepts](/addresses/concepts)                     |
| See a real-world walkthrough | [Parsing an Interoperable Name](/addresses/example) |
| Learn advanced patterns      | [Advanced Usage](/addresses/advanced-usage)         |
| Look up a function signature | [API Reference](/addresses/api)                     |
