Функции управления счетом
1. Баланс счета 2. Трансфер (перевод) 3. Информация о транзакции 4. Список транзакцийAPI-запрос осуществляется методом POST протокола HTTP к одному из указанных в Кабинете хостов. Общий вид URL API-запроса:
http(s)://API_HOST/v1/<function>/<params>Тело (DATA) POST-запроса всегда состоит из трех параметров:
public_key=<PUBLIC_KEY>&rnd=<RND>&signature=<SIGNATURE>PUBLIC_KEY – открытый ключ пользователя, RND – случайный набор латинских букв и цифр, SIGNATURE – подпись запроса, PRIVATE_KEY – закрытый ключ пользователя. Открытый и закрытый ключи пользователя уникальны для каждого пользователя и отображены в Кабинете. RND генерирует отправитель запроса, в целях безопасности рекомендуется генерировать новый RND на каждый запрос.
Во всех приведенных ниже примерах открытый ключ (PUBLIC_KEY):
67DbHjAodk9Cbic98mG98492d4N1IB29m51P3jзакрытый ключ (PRIVATE_KEY):
35CJ1KMG57HPjNaF4MCEe9HiAEKF39eNigikJ2393RND:
J04PDiMH9pH2k10Il713D5c76f1
За каждый API-запрос начисляется определенное количество баллов (вес функции), сумма таких баллов полученных за 1 минуту не должна превышать лимит установленный для пользователя, который по умолчанию равен 10. Свяжитесь с тех. поддержкой для увеличения лимита.
1. Функция wallet-balance, баланс счета
Вес функции wallet-balance равен 1 баллу.
Общий вид
http(s)://API_HOST/v1/wallet/<KIND>/balance
KIND – название криптовалюты в сокращенном виде, допустимые значения: BTC – Bitcoin, LTC – Litecoin, DASH – Dash, XMR – Monero, BCH – Bitcoin Cash.
SIGNATURE вычисляется по формуле:
SHA512(PUBLIC_KEY+';'+RND+';'+KIND+';'+PRIVATE_KEY)
Ответ (JSON)
{ kind: KIND, balance: BALANCE, unlocked_balance: UNLOCKED_BALANCE }
KIND – название криптовалюты в сокращенном виде, BALANCE – баланс счета, UNLOCKED_BALANCE – доступный к трате баланс счета.
Пример
URL ЗАПРОСА:http(s)://API_HOST/v1/wallet/ltc/balanceDATA ЗАПРОСА:
public_key=67DbHjAodk9Cbic98mG98492d4N1IB29m51P3j&rnd=J04PDiMH9pH2k10Il713D5c76f1&signature=7de07cd9fa4ccaf64247418a975ef505c4378e22e612bad440f125bc1f36fa25e00b9bae860da51a844da8c79bd392d1820d25a5c39547e103d1a1aeb1e4e789JSON-ОТВЕТ:
{"kind":"ltc","balance":"0.034","unlocked_balance":"0.034"}
2. Функция wallet-send-to, трансфер (перевод)
Вес функции wallet-send-to равен 5 баллам.
Общий вид
http(s)://API_HOST/v1/wallet/<KIND>/send/<AMOUNT>/to/<ADDRESS>/sffa/<SUBTRACT_FEE_FROM_AMOUNT>/fee/<FEE>
KIND – название криптовалюты в сокращенном виде, AMOUNT – сумма криптовалюты (десятичная дробь, дробная часть после точки), ADDRESS – принимающий транзакцию адрес, SUBTRACT_FEE_FROM_AMOUNT – параметр отвечает за вычитание комиссии из суммы транзакции, принимает значение true или false, FEE – вознаграждение майнерам в BTC/kB (0.00001 BTC/kB = 1 sat/vbyte), необязательный параметр.
Параметр SUBTRACT_FEE_FROM_AMOUNT актуален для всех криптовалют кроме Monero (XMR). Для Monero SUBTRACT_FEE_FROM_AMOUNT всегда должен быть false.
Если SUBTRACT_FEE_FROM_AMOUNT установлено как true, то BLOCKED_AMOUNT (заблокированная сумма до момента выполнения перевода) будет равна указанному в AMOUNT, если false, то BLOCKED_AMOUNT будет больше AMOUNT на сумму равную <потенциальная комиссия майнерам> + <комиссия системы>.
Параметер FEE актуален только для Bitcoin (BTC), игнорируется для остальных криптовалют. Если при запросе трансфера BTC отсутствует параметер FEE, то система сама высчитывает минимальное вознаграждение майнерам такое, чтобы транзакция получила подтверждение в ближайшие 20 блоков.
Если поле FEE отсутствует, то SIGNATURE вычисляется по формуле:
SHA512(PUBLIC_KEY+';'+RND+';'+KIND+';'+AMOUNT+';'+ADDRESS+';'+SUBTRACT_FEE_FROM_AMOUNT+';'+PRIVATE_KEY)Если поле FEE задано формула SIGNATURE:
SHA512(PUBLIC_KEY+';'+RND+';'+KIND+';'+AMOUNT+';'+ADDRESS+';'+SUBTRACT_FEE_FROM_AMOUNT+';'+FEE+';'+PRIVATE_KEY)
Ответ (JSON)
{ transaction_id: TRANSACTION_ID, amount: AMOUNT, blocked_amount: BLOCKED_AMOUNT, address: ADDRESS, sffa: SUBTRACT_FEE_FROM_AMOUNT, fee: FEE, created_at: CREATED_AT }
TRANSACTION_ID – внутренний индентификатор транзакции, BLOCKED_AMOUNT – заблокированная сумма, блокируется, но не списывается с баланса до тех пор пока транзакция в ожидании исполнения. BLOCKED_AMOUNT обычно больше суммы, которая спишется с баланса по завершению транзакции.
Если FEE не обозначен или не поддерживается для криптовалюты, то в ответе FEE будет иметь значение unset.
Пример №1
URL ЗАПРОСА:http(s)://API_HOST/v1/wallet/ltc/send/0.01/to/M8NASPjHR8pT6FFNJKSvZVdFCEpaqTjxTE/sffa/trueDATA ЗАПРОСА:
public_key=67DbHjAodk9Cbic98mG98492d4N1IB29m51P3j&rnd=J04PDiMH9pH2k10Il713D5c76f1&signature=e61421b2ed705d91f78ee7496560437523812f7cff5107dc31e696d24c68d5178f937802b3e5cf4db3e3e3170565bd2d62a0dffe0ed9a11bd6e7036de6a4b51bJSON-ОТВЕТ:
{"transaction_id":2783,"amount":"0.01","blocked_amount":"0.01","address":"M8NASPjHR8pT6FFNJKSvZVdFCEpaqTjxTE","sffa":true,"fee":"unset","created_at":"2022-02-04T12:05:01.000+03:00"}
Пример №2
URL ЗАПРОСА:http(s)://API_HOST/v1/wallet/btc/send/0.00015/to/34ZVpoqVHbepG7bFELqzfPiBpqxbQxnq6W/sffa/true/fee/0.00001/DATA ЗАПРОСА:
public_key=67DbHjAodk9Cbic98mG98492d4N1IB29m51P3j&rnd=J04PDiMH9pH2k10Il713D5c76f1&signature=155f46b8453ffd4d22319eb5ebf970b59349a636d20bbcd2f2e49405c59bda9067a10410ab23d4ca9342e829ec5fe9058a6f1057559cb535c9c637055cbbb7c7JSON-ОТВЕТ:
{"transaction_id":2785,"amount":"0.00015","blocked_amount":"0.00015","address":"34ZVpoqVHbepG7bFELqzfPiBpqxbQxnq6W","sffa":true,"fee":"0.00001","created_at":"2022-02-04T12:07:07.000+03:00"}
3. Функция wallet-transaction-info, информация о транзакции
Вес функции wallet-transaction-info равен 1 баллу.
Общий вид
http(s)://API_HOST/v1/wallet/<KIND>/transaction/<TRANSACTION_ID>/info
KIND – название криптовалюты в сокращенном виде, TRANSACTION_ID – внутренний идентификатор транзакции, возвращается в ответе запрос трансфера (перевода).
SIGNATURE вычисляется по формуле:
SHA512(PUBLIC_KEY+';'+RND+';'+KIND+';'+TRANSACTION_ID+';'+PRIVATE_KEY)
Ответ (JSON) транзакции неопределенного типа (трансфер ожидающий выполнения)
{ transaction_id: TRANSACTION_ID, amount: AMOUNT, address: ADDRESS, blocked_amount: BLOCKED_AMOUNT, sffa: SUBTRACT_FEE_FROM_AMOUNT, fee: FEE, created_at: CREATED_AT }
Ответ (JSON) для внутренней транзакции
{ transaction_id: TRANSACTION_ID, amount: AMOUNT, address: ADDRESS, hash: HASH, type: TYPE, created_at: CREATED_AT }
Ответ (JSON) для внешней транзакции
{ transaction_id: TRANSACTION_ID, amount: AMOUNT, address: ADDRESS, hash: HASH, confirms_received: CONFIRMS_RECEIVED, type: TYPE, created_at: CREATED_AT }
HASH – хэш (TXID) транзакции (идентичен хэшу в блокчейне криптовалюты для внешних транзакций), AMOUNT – сумма общего списания с баланса (<тело транзакции> + <комиссия майнерам> + <комиссия системы>), ADDRESS – адрес получателя транзакции, TYPE – тип транзакции, внутренняя (internal) или внешняя (external).
Транзакция считается внутренней (internal) если перевод совершен между разными пользователями внутри одного общего криптокошелька (подробнее у тех. поддержки), комиссия майнерам и комиссия системы за такие переводы отсутствуют. Прочие транзакции считаются внешними (external).
CONFIRMS_RECEIVED может принимать следующие значения: положительное число – реальное число полученных на данный момент подтверждений, количество подтверждений меньше, чем требуется для признания транзакции подтвержденной; положительное число со знаком "+" в конце – количество подтверждений больше либо равно необходимому количеству для признания транзакции подтвержденной (транзакция подтверждена, учет полученных подтверждений больше не ведется); -1 – транзакция отменена отправителем и не существует в блокчейне криптовалюты, конфликтная транзакция.
Пример
URL ЗАПРОСА:http(s)://API_HOST/v1/wallet/btc/transaction/2785/infoDATA ЗАПРОСА:
public_key=67DbHjAodk9Cbic98mG98492d4N1IB29m51P3j&rnd=J04PDiMH9pH2k10Il713D5c76f1&signature=00338d63416a5a337a46f7d0d5980fec872148e0cf38b50e6efe9423815ed4e5cc9c29873ec18633e49ef093bcc6d22c9d57d5dd1192b084a19497b6960dc350JSON-ОТВЕТ:
{"transaction_id":2785,"amount":"-0.00015","address":"34ZVpoqVHbepG7bFELqzfPiBpqxbQxnq6W","hash":"1de723b3e5d1fcd990817656496f9070ebc53ef202fc23ff8af5f961ae2422d9","confirms_received":"0","type":"external","created_at":"2022-02-03T11:08:07.000+03:00"}
4. Функция wallet-transaction-list, список транзакций
Вес функции wallet-transaction-list равен 4 баллам.
Общий вид
http(s)://API_HOST/v1/wallet/<KIND>/transaction/list/<OFFSET>
KIND – название криптовалюты в сокращенном виде, OFFSET – смещение в страницах, 1 страница содержит 40 транзакций.
Список транзакций отсортирован в обратном порядке, первая в списке – последняя на момент запроса транзакция.
SIGNATURE вычисляется по формуле:
SHA512(PUBLIC_KEY+';'+RND+';'+KIND+';'+OFFSET+';'+PRIVATE_KEY)
Ответ (JSON)
[ { transaction_id: TRANSACTION_ID_1, amount: AMOUNT_1, hash: HASH_1 }, { transaction_id: TRANSACTION_ID_2, amount: AMOUNT_2, hash: HASH_2 }, ... { transaction_id: TRANSACTION_ID_N, amount: AMOUNT_N, hash: HASH_N } ]
TRANSACTION_ID_(1,2,...,N) – внутренний идентификатор транзакции, AMOUNT_(1,2,...,N) – сумма криптовалюты, HASH_(1,2,...,N) – хэш (TXID) транзакции (идентичен хэшу в блокчейне криптовалюты для внешних транзакций).
Пример
URL ЗАПРОСА:http(s)://API_HOST/v1/wallet/ltc/transaction/list/1DATA ЗАПРОСА:
public_key=67DbHjAodk9Cbic98mG98492d4N1IB29m51P3j&rnd=J04PDiMH9pH2k10Il713D5c76f1&signature=38b97d1a8a4c79cfaf48ccb1325f72c8bf91f7d3d04dd9539f1ca820344615d3c885029fc1a05e823dfa706c44590afd395eddb9a59d356e38481cd815c1bba8JSON-ОТВЕТ:
[{"transaction_id":1189, "hash":"lola-internal-p5ooocm76bbd2hgna7fp1nmadba7cbp1a", "amount":"-0.00723648"}, {"transaction_id":1183, "hash":"a620c7290739d0b9a20ab56fa9f50377f509b2bfa34b36e15176dff34640ff32", "amount":"0.0015"}, {"transaction_id":1180, "hash":"a7a4336151552395af9d3ec6ac873dd4837cbd7506a6342babdcaa0b40c44dc5", "amount":"0.0025"}, {"transaction_id":1179, "hash":"5cf46f09896c92fc7eb0b465f92d648f79ae6dd9caba4bc896094cfd54d89b35", "amount":"0.0015"}, {"transaction_id":714, "hash":"0f1eef38929f65b90648406c9ee8e0d2276d585b22d325eefc115a26aecea3fd", "amount":"-0.00515"}, {"transaction_id":713, "hash":"e862b56799b19d9487dd01f93b59042122c8aa1d4aabe6dff3a18e711e1c8021", "amount":"-0.00311352"}]