
Supported Networks
Supported Networks
While you can sign transactions for any network using Eddsa or Ecdsa keys, each chain signs transactions differently.Our example implementation shows you how to sign transactions for: Bitcoin, Solana, Cosmos, XRP, Aptos, Sui and EVM networks (Ethereum, Base, BNB Chain, Avalanche, Polygon, Arbitrum, and more).
Benefits
Integration with Chain Signatures brings many benefits to Web3 developers:- Single Account, Multi-Chain Operations: Developers can manage interactions with external blockchains from one NEAR account, without needing multiple wallets or addresses.
- Reduced Overhead in Cross-Chain Development: Developers can write smart contracts on NEAR that directly sign for cross-chain transactions.
- Secure Transaction Signing: Using Multi-Party Computation (MPC), no single entity controls the signing key.
How It Works
Controlling accounts and their assets on other blockchain platforms is made possible thanks to the interaction between three elements:- Derivation Paths - A deterministic way to derive foreign addresses from one NEAR account
- Multichain Smart Contract - Receives requests to sign a transaction for other blockchains
- Multiparty Computation Service - Third-party service providing signatures to the contract

Derivation Paths: One Account, Multiple Chains
Chain Signatures link NEAR accounts to addresses in other blockchain using Additive Key Derivation (a simple mechanism for deriving many subkeys from a single master key). These keys are generated usingderivation paths (or paths for short).
A derivation path is simply a string (e.g. ethereum-1, ethereum-2, etc) that in conjunction with the NEAR account derives a unique address on the target blockchain.
For example, we can derive multiple Ethereum addresses from example.near by using different paths:
example.near+ethereum-1=0x1b48b83a308ea4beb845db088180dc3389f8aa3bexample.near+ethereum-2=0x99c5d3025dc736541f2d97c3ef3c90de4d221315example.near+...=0x...
Multichain Smart Contract
A deployed smart contract (v1.signer) is used to request signatures for transactions on other blockchains. This contract has asign method that takes these three parameters:
- The
payload(transaction or transaction hash) to be signed for the target blockchain. - The
paththat identifies the account to be used to sign the transaction. - The
domain_id: an integer that picks the key and signature scheme, only the two signing domains are currently supported:0forSecp256k1or1forEd25519.
send 0.1 ETH to 0x060f1... (transaction) using the ethereum-1 account (path) with 0 (Secp256k1) as domain ID.
After a request is made, the sign method will yield execution waiting while the MPC signing service signs the transaction.
Once the signature is ready, the contract resumes computation and returns it to the user. This signature is a valid signed transaction that can be readily sent to the target blockchain to be executed.
For the user, the process is made completely on chain, since they only need to make a call to a smart contract and wait for the response.
Multi-Party Computation Service
The essence of Multi-Party Computation (MPC) is to enable independent parties to perform shared computations on private information without revealing secrets to each other. In practice, this system can be used with blockchain platforms to safely sign a transaction on behalf of a user without ever having to expose a private key. NEAR’s MPC service is comprised of several independent nodes, none of which can sign by itself, but instead create signature-shares that are aggregated through multiple rounds to jointly sign a transaction. The participant set and the signing threshold are public in thev1.signer contract, and they change only through its vote_new_parameters method, when enough current participants vote for it (see The MPC network today).
This service continuously listens for signature requests (i.e. users calling the sign method on the v1.signer smart contract) and when a call is detected the MPC service:
- Asks its nodes to jointly derive a signature for the
payloadusing the account identified by thepath - Once complete, call the
v1.signercontract to store the resultingSignature
A Custom MPC Service
Generally, MPC signing services work by sharing a master key, which needs to be re-created each time a node joins or leaves.NEAR’s MPC service allows for nodes to safely join and leave, without needing to re-derive a master key.