Near Learn

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#

PieceWhat it doesWhere it livesTestnet?
Chain SignaturesAn 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.nearNo, mainnet only
Solvers / Message BusMarket 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 APIA 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
BridgesRepresent 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 servicesVaries

How a cross-chain swap flows through them#

  1. 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.
  2. 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.near inside intents.near to the Intents account tied to this quote. 1Click does not take custody; balances live in the Verifier.
  3. Solvers quote the swap. The winning quote and the intent for this deposit settle atomically in the Verifier, as matching token_diff intents.
  4. The Verifier withdraws the output: an ft_transfer of USDC on NEAR to game.near, or a bridge withdrawal to another chain.
  5. GET /v0/status reports SUCCESS, or REFUNDED if 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):

AssetAsset IDDecimals
wNEARnep141:wrap.near24
USDC on NEAR (native)nep141:17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a16
USDC on Basenep141:base-0x833589fcd6edb6e08f4c7c32d4f71b54bda02913.omft.near6
USDC on Solananep141:sol-5ce3bf3a31af18be40ba30f721101b4341690186.omft.near6
ETH on Ethereumnep141:eth.omft.near18
BTCnep141:btc.omft.near8

Which one do I need?#

You want to…UseLesson
Hold or move native BTC, ETH or SOL from a NEAR account or contractChain SignaturesHow Chain Signatures work, Sign from your contract
Let users pay or deposit from any chain without running liquidity1Click API1Click API for apps, Deposits from any chain
Settle transfers or trades atomically, or let users sign with the wallet they already haveVerifier contract + Intents SDKThe NEAR Intents model, Signing and executing intents
Get competing quotes and fill swaps yourselfSolver relay (Message Bus)Swaps through solvers
Hold a canonical bridged token in your own contractA bridge token (e.g. Omni Bridge)Cross-chain libraries

Check yourself

3 questions · progress saved in this browser

  1. 1.Your NEAR contract must pay out native BTC when a vote passes. Which piece signs the Bitcoin transaction?
  2. 2.You want to test NEAR Intents on testnet. What do you find?
  3. 3.How should your app get the asset ID for USDC on Solana?