Інтеграція з NEAR Chain Signatures

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з NEAR Chain Signatures
Складний
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Інтеграція NEAR Chain Signatures

NEAR Chain Signatures — принципово іншій підхід до крос-чейн взаємодії. Замість спеціалізованих bridge контрактів на кожному чейні, Chain Signatures дозволяють NEAR рахунку підписувати транзакції для будь-якого чейна: Ethereum, Bitcoin, Solana, Dogecoin — без розгортання чогось.

Як це працює

За основою: MPC (Multi-Party Computation) мережа NEAR валідаторів, які колективно тримають master key. Користувач запитує підпис транзакції для іншого чейна, MPC мережа генерує підпис через threshold криптографію. Результат — валідна підпис для цільового чейна, яку можна broadcast'ити.

Один NEAR рахунок контролює Bitcoin адресу, Ethereum адресу, Solana адресу — без seed фрази для кожної. Один NEAR рахунок = доступ до всіх активів.

Derivation paths

Кожен NEAR рахунок може отримати кілька адрес на зовнішніх чейнах via derivation path:

// alice.near з path "eth-1" → один ETH адрес
// alice.near з path "eth-2" → інший ETH адрес
// alice.near з path "btc-main" → BTC адрес

Один NEAR рахунок керує кількома wallet адресами на різних чейнах.

Запит на підпис

import { connect, utils } from "near-api-js";

async function requestEthSignature(
  nearAccount: Account,
  ethTxPayload: string,
  derivationPath: string
): Promise<{ r: string; s: string; v: number }> {
  const result = await nearAccount.functionCall({
    contractId: "v1.signer.near",  // MPC контракт
    methodName: "sign",
    args: {
      payload: Array.from(Buffer.from(ethTxPayload, "hex")),
      path: derivationPath,
      key_version: 0,
    },
    gas: "300000000000000",
    attachedDeposit: utils.format.parseNearAmount("0.1"),
  });
  
  const { big_r, s, recovery_id } = result as any;
  return {
    r: big_r.affine_point,
    s: s.scalar,
    v: recovery_id,
  };
}

Повний флоу: NEAR → Ethereum транзакція

import { ethers } from "ethers";

async function sendEthFromNear(
  nearAccount: Account,
  recipient: string,
  amountWei: bigint,
  derivationPath: string
) {
  // 1. Отримуємо Ethereum адрес
  const ethAddress = await getEthAddressFromNear(nearAccount, derivationPath);
  
  // 2. Отримуємо nonce та gas price
  const provider = new ethers.JsonRpcProvider("https://eth.llamarpc.com");
  const nonce = await provider.getTransactionCount(ethAddress);
  const feeData = await provider.getFeeData();
  
  // 3. Створюємо unsigned транзакцію
  const tx = {
    to: recipient,
    value: amountWei,
    nonce,
    chainId: 1,
    maxFeePerGas: feeData.maxFeePerGas,
    maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
    gasLimit: 21000n,
    type: 2,
  };
  
  // 4. Серіалізуємо для підпису
  const serialized = ethers.Transaction.from(tx).unsignedSerialized;
  const payload = ethers.getBytes(ethers.keccak256(serialized));
  
  // 5. Запитуємо підпис від MPC via NEAR
  const signature = await requestEthSignature(
    nearAccount,
    Buffer.from(payload).toString("hex"),
    derivationPath
  );
  
  // 6. Будуємо підписану транзакцію
  const signedTx = ethers.Transaction.from({
    ...tx,
    signature: {
      r: "0x" + signature.r,
      s: "0x" + signature.s,
      v: signature.v,
    },
  });
  
  // 7. Broadcast на Ethereum
  const txResponse = await provider.broadcastTransaction(signedTx.serialized);
  return txResponse.wait();
}

Bitcoin інтеграція

Chain Signatures підтримує Bitcoin нативно (secp256k1 + P2WPKH/P2TR).

Use cases

Omnichain DeFi. dApp на NEAR, керування позиціями на Ethereum AAVE, Uniswap без мосту.

Крос-чейн ліквідаційний бот. Моніторинг позицій на кількох чейнах, авто-ліквідація через підписи.

Мультичейн управління портфелем. Управління активами на Ethereum, Bitcoin, Solana з одного NEAR рахунку.

Atomic swaps без мосту. ETH ↔ BTC з on-chain HTLC гарантіями.

Обмеження

Chain Signatures відносно новий (mainnet 2024). Зрілість нижча ніж Axelar/LayerZero. MPC latency: підпис займає 3-5 секунд. Вартість: ~0.1 NEAR + газ на sign.

Stack: React + near-api-js, NEAR контракти (Rust/TypeScript), ethers.js/bitcoinjs-lib/@solana/web3.js.

Таймлайни: NEAR + Chain Signatures базовий флоу — 2-3 тижні. Ethereum інтеграція — +1-2 тижні. Bitcoin — +2-3 тижні. Повний omnichain dApp — 2-3 місяці.