Управление кошельками
Начало работы с кошельками на Chaingateway
Заголовок раздела «Начало работы с кошельками на Chaingateway»Введение
Заголовок раздела «Введение»Chaingateway предоставляет два метода генерации кошельков: кошельки, защищённые паролем, и незащищённые кошельки. Ниже мы опишем оба подхода, их последствия для безопасности и примеры использования.
1. Кошельки, защищённые паролем (рекомендуется)
Заголовок раздела «1. Кошельки, защищённые паролем (рекомендуется)»Если вы укажете параметр password в теле запроса на /api/v2/{blockchain}/addresses, приватный ключ созданного кошелька будет надёжно храниться в зашифрованном виде.
Механизм безопасности
Заголовок раздела «Механизм безопасности»- Приватный ключ шифруется с использованием вашего пароля и дополнительных внутренних механизмов шифрования.
- При отправке транзакций вы указываете
passwordвместо приватного ключа. - Этот метод повышает безопасность, гарантируя, что приватные ключи никогда не раскрываются в API-запросах.
Управление паролем
Заголовок раздела «Управление паролем»- Обновление пароля: Используйте
UPDATE /api/v2/{blockchain}/addresses/{address}с параметрамиold_passwordиnew_password. - Экспорт приватного ключа: Используйте
POST /api/v2/{blockchain}/addresses/export/{address}, чтобы получить свой приватный ключ (требуется пароль).
::: danger Храните свой пароль в безопасности Мы никогда не храним приватные ключи или пароли в нашем приложении — ни в нашей базе данных, ни в наших механизмах логирования или обработки исключений. Если вы потеряете свой пароль, мы не сможем восстановить приватный ключ вашего кошелька. :::
Пример запроса
Заголовок раздела «Пример запроса»curl --request POST \ --url https://app.chaingateway.io/api/v2/ethereum/addresses \ --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "password": "architecto"}'<?php$ch = curl_init();curl_setopt($ch, CURLOPT_URL, 'https://app.chaingateway.io/api/v2/ethereum/addresses');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["password" => "architecto"]));curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_SECRET_TOKEN', 'Content-Type': 'application/json']);$response = curl_exec($ch);curl_close($ch);echo $response;fetch('https://app.chaingateway.io/api/v2/ethereum/addresses', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_SECRET_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ password: 'architecto' })}).then(response => response.json()).then(data => console.log(data));import requestsheaders = { 'Authorization': 'Bearer YOUR_SECRET_TOKEN', 'Content-Type': 'application/json'}data = {"password": "architecto"}response = requests.post('https://app.chaingateway.io/api/v2/ethereum/addresses', headers=headers, json=data)print(response.json())Пример транзакций
Заголовок раздела «Пример транзакций»curl --request POST \ --url https://app.chaingateway.io/api/v2/ethereum/transactions \ --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "from": "0xSenderAddress", "to": "0xRecipientAddress", "amount": "100", "password": "password"}'2. Незащищённые кошельки (использовать с осторожностью)
Заголовок раздела «2. Незащищённые кошельки (использовать с осторожностью)»Если вы не укажете пароль в запросе на создание адреса, приватный ключ будет возвращён напрямую в ответе. Это означает, что приватный ключ должен надёжно храниться и управляться на вашей стороне.
::: danger Использовать только для непостоянных кошельков Поскольку приватный ключ включён в ответ, вы несёте ответственность за его надёжное хранение и защиту. Мы настоятельно рекомендуем вместо этого использовать кошельки, защищённые паролем. Если кто-то получит доступ к вашему приватному ключу, он сможет распоряжаться всеми средствами в кошельке. :::
Риски безопасности
Заголовок раздела «Риски безопасности»- Приватный ключ раскрывается в ответе API, что делает его уязвимым при перехвате.
- Если злоумышленник получит доступ к приватному ключу, он сможет полностью контролировать кошелёк.
- Этот метод следует использовать только для временных кошельков или адресов одноразового использования.
Пример запроса
Заголовок раздела «Пример запроса»curl --request POST \ --url https://app.chaingateway.io/api/v2/tron/addresses \ --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \ --header 'Content-Type: application/json'<?php$ch = curl_init();curl_setopt($ch, CURLOPT_URL, 'https://app.chaingateway.io/api/v2/tron/addresses');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["activated" => true]));curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_SECRET_TOKEN', 'Content-Type': 'application/json']);$response = curl_exec($ch);curl_close($ch);echo $response;fetch('https://app.chaingateway.io/api/v2/tron/addresses', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_SECRET_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ activated: true })}).then(response => response.json()).then(data => console.log(data));import requestsheaders = { 'Authorization': 'Bearer YOUR_SECRET_TOKEN', 'Content-Type': 'application/json'}data = {"activated": True}response = requests.post('https://app.chaingateway.io/api/v2/tron/addresses', headers=headers, json=data)print(response.json())Пример транзакций
Заголовок раздела «Пример транзакций»curl --request POST \ --url https://app.chaingateway.io/api/v2/ethereum/transactions \ --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "from": "0xSenderAddress", "to": "0xRecipientAddress", "amount": "100", "password": "password"}'