Chain abstraction on NEAR: who does what
A map of NEAR chain abstraction: Chain Signatures, NEAR Intents, solvers, 1Click and bridged omft tokens. What each piece does, where it lives, when to use it.
Intermediate5 min read3-question check
“Chain abstraction” on NEAR is not one product. It is a handful of separate systems that are often used together, and most confusion comes from mixing them up. Before writing any code, it helps to know which piece signs, which piece settles, which piece quotes prices and which piece moves tokens between chains.
This lesson is the map. The rest of the module goes deep on each piece. Contract IDs, endpoints and token IDs below were checked against the live networks and the official docs (NEAR docs, NEAR Intents docs) in October 2026.
The pieces and their jobs#
| Piece | What it does | Where it lives | Testnet? |
|---|---|---|---|
| Chain Signatures | An MPC network signs payloads for keys derived from a NEAR account + a path. Your NEAR account or contract controls real addresses on Bitcoin, EVM chains, Solana and more. | Signer contract v1.signer (MPC nodes watch it and answer) | Yes: v1.signer-prod.testnet |
| NEAR Intents (Verifier) | A contract that keeps a token ledger (NEP-245 balances) and atomically settles signed intents: transfers, swaps (token_diff), withdrawals. | intents.near | No, mainnet only |
| Solvers / Message Bus | Market makers that compete to quote and fill swaps. The Message Bus relays quote requests and submits matched intents to the Verifier. | JSON-RPC https://solver-relay-v2.chaindefuser.com/rpc (API key) | No |
| 1Click Swap API | A REST layer over Intents: ask for a quote, get a deposit address, the user sends funds, 1Click routes and settles, you poll status. | https://1click.chaindefuser.com/v0/... | No |
| Bridges | Represent foreign assets as NEAR tokens so the Verifier can hold them, and release them on the origin chain on withdrawal: PoA bridge (*.omft.near), Omni Bridge (e.g. eth.bridge.near), HOT bridge (nep245:v2_1.omni.hot.tg:…). | Token contracts on NEAR + bridge services | Varies |
How a cross-chain swap flows through them#
- Your app asks 1Click for a quote: “1 USDC on Base → USDC on NEAR, deliver to
game.near”. 1Click returns a quote and a fresh deposit address on Base. - The user sends USDC on Base to that address. A bridge (for this asset, the PoA bridge) sees the deposit and credits
nep141:base-0x8335…omft.nearinsideintents.nearto the Intents account tied to this quote. 1Click does not take custody; balances live in the Verifier. - Solvers quote the swap. The winning quote and the intent for this deposit settle atomically in the Verifier, as matching
token_diffintents. - The Verifier withdraws the output: an
ft_transferof USDC on NEAR togame.near, or a bridge withdrawal to another chain. GET /v0/statusreportsSUCCESS, orREFUNDEDif anything failed before the deadline.
Chain Signatures are not part of that path at all. They answer a different question: how does a NEAR account or contract act directly on another chain, with its own address there, without a bridge in the middle.
Token IDs you will see everywhere#
The Verifier and 1Click name assets with a standard prefix plus the NEAR contract ID: nep141:<ft contract>, nep171:<nft contract>:<token id>, nep245:<mt contract>:<token id>. Foreign assets appear as NEAR tokens minted by a bridge. Some real IDs from GET https://1click.chaindefuser.com/v0/tokens (October 2026):
| Asset | Asset ID | Decimals |
|---|---|---|
| wNEAR | nep141:wrap.near | 24 |
| USDC on NEAR (native) | nep141:17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1 | 6 |
| USDC on Base | nep141:base-0x833589fcd6edb6e08f4c7c32d4f71b54bda02913.omft.near | 6 |
| USDC on Solana | nep141:sol-5ce3bf3a31af18be40ba30f721101b4341690186.omft.near | 6 |
| ETH on Ethereum | nep141:eth.omft.near | 18 |
| BTC | nep141:btc.omft.near | 8 |
Which one do I need?#
| You want to… | Use | Lesson |
|---|---|---|
| Hold or move native BTC, ETH or SOL from a NEAR account or contract | Chain Signatures | How Chain Signatures work, Sign from your contract |
| Let users pay or deposit from any chain without running liquidity | 1Click API | 1Click API for apps, Deposits from any chain |
| Settle transfers or trades atomically, or let users sign with the wallet they already have | Verifier contract + Intents SDK | The NEAR Intents model, Signing and executing intents |
| Get competing quotes and fill swaps yourself | Solver relay (Message Bus) | Swaps through solvers |
| Hold a canonical bridged token in your own contract | A bridge token (e.g. Omni Bridge) | Cross-chain libraries |
Check yourself
3 questions · progress saved in this browser