Интеграция с Changelly API
Changelly — агрегатор обменников криптовалют. Интеграция позволяет встроить мгновенный обмен криптовалют в своё приложение без необходимости держать ликвидность. Changelly сам роутит сделки через партнёрские биржи.
Подключение к API
Changelly предоставляет REST API v2 с API-key аутентификацией. Базовый URL: https://api.changelly.com/v2.
import crypto from 'crypto';
class ChangellyClient {
private apiKey: string;
private apiSecret: string;
constructor(apiKey: string, apiSecret: string) {
this.apiKey = apiKey;
this.apiSecret = apiSecret;
}
private signRequest(body: object): string {
const message = JSON.stringify(body);
return crypto.createHmac('sha512', this.apiSecret).update(message).digest('hex');
}
async getExchangeAmount(from: string, to: string, amount: string) {
const body = {
jsonrpc: '2.0',
id: Date.now().toString(),
method: 'getExchangeAmount',
params: { from, to, amount },
};
const response = await fetch('https://api.changelly.com/v2', {
method: 'POST',
headers: {
'api-key': this.apiKey,
'sign': this.signRequest(body),
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
});
return response.json();
}
}
Основные вызовы API
// Получение минимальной суммы для обмена
const minAmount = await changelly.request('getMinAmount', { from: 'btc', to: 'eth' });
// Получение курса обмена
const rate = await changelly.request('getExchangeAmount', {
from: 'btc', to: 'eth', amount: '0.1'
});
// Создание транзакции обмена
const transaction = await changelly.request('createTransaction', {
from: 'btc',
to: 'eth',
amount: '0.1',
address: userEthAddress, // адрес получения
refundAddress: userBtcAddress, // адрес возврата при ошибке
});
// Отслеживание статуса
const status = await changelly.request('getTransactions', {
id: transaction.result.id
});
Workflow обмена
- Получить курс → показать пользователю
- Пользователь подтверждает →
createTransaction→ получаем депозитный адрес - Пользователь отправляет криптовалюту на депозитный адрес
- Polling статуса каждые 30–60 сек:
waiting → confirming → exchanging → sending → finished - При
failed— показываем refund информацию
Интеграция Changelly API в существующее приложение: 1 неделя включая UI для выбора пар и отображения статуса.







