---
title: 'Pointer Contracts: Bridging EVM and Cosmos'
sidebarTitle: 'Pointer Contracts'
description: "How Paxeer's pointer contracts bridge assets between EVM and Cosmos, with patterns for CW20, CW721, and native tokens."
keywords: ['pointer contracts', 'cross-vm interoperability', 'evm cosmos bridge', 'token bridging', 'smart contract integration']
---

> **For AI agents:** the complete documentation index is at [llms.txt](/llms.txt). Append `.md` to any page URL for its markdown version.

<Info>
  **Pointer contracts are now primarily a legacy / migration tool.** No new CosmWasm contracts can be uploaded or instantiated on Paxeer, so the CW20 / CW721 / CW1155 to ERC20 / ERC721 / ERC1155 pointer flow only applies to already-deployed CosmWasm contracts. Native (Bank Module) pointers continue to work normally. For new tokens or NFTs, deploy ERC20 / ERC721 / ERC1155 contracts directly on the EVM.
</Info>

Pointer Contracts enable tokens to be used interoperably in both EVM and
Cosmos environments. Intended to be efficient and quick to deploy, a pointer
serves as an interpreter between the two "languages" used in either
execution environment.

## Why Pointer Contracts

![Without Pointer Contracts](/assets/pointer-contracts-without.png)
*A world without pointer contracts*

Wallets and clients for feature-rich protocols typically support only a single
execution environment. EVM wallets handle ERC-20 coins and ERC-721 NFTs but
cannot interact with Cosmos-SDK based assets due to different token standards and
interaction methods. The same problem exists for clients built for other
protocols (like Cosmos and its various SDK modules) which cannot directly
interact with Ethereum-based contracts or ERC tokens.

Pointer Contracts solve this by enabling interoperability of either protocol,
regardless of the client interface.

![With Pointer Contracts](/assets/pointer-contracts-simplified.png)
*With pointer contracts, all tokens can be accessed by wallets of either environment*

## How Pointer Contracts Work

![How Pointer Contracts Work](/assets/pointer-contracts-how-it-works.png)
*Pointer contracts enable seamless interoperability*

Each smart contract is limited to **one** associated pointer contract, which
must be registered on chain when deploying. This prevents conflicts and provides
a reference point for verifying the authenticity of the paired contract itself.
