Gestion des wallets
Premiers pas avec les wallets sur Chaingateway
Section intitulée « Premiers pas avec les wallets sur Chaingateway »Introduction
Section intitulée « Introduction »Chaingateway propose deux méthodes pour générer des wallets : les wallets protégés par mot de passe et les wallets non sécurisés. Nous décrivons ci-dessous les deux approches, leurs implications en matière de sécurité et des exemples d’utilisation.
1. Wallets protégés par mot de passe (recommandé)
Section intitulée « 1. Wallets protégés par mot de passe (recommandé) »Si vous fournissez un paramètre de corps password dans votre requête vers /api/v2/{blockchain}/addresses, la clé privée du wallet généré sera stockée de manière sécurisée sous forme chiffrée.
Mécanisme de sécurité
Section intitulée « Mécanisme de sécurité »- La clé privée est chiffrée à l’aide de votre mot de passe et de mécanismes de chiffrement internes supplémentaires.
- Lors de l’envoi de transactions, vous fournissez le
passwordau lieu de la clé privée. - Cette méthode renforce la sécurité en garantissant que les clés privées ne sont jamais exposées dans les requêtes API.
Gestion du mot de passe
Section intitulée « Gestion du mot de passe »- Mise à jour du mot de passe : Utilisez
UPDATE /api/v2/{blockchain}/addresses/{address}avec les paramètresold_passwordetnew_password. - Export de la clé privée : Utilisez
POST /api/v2/{blockchain}/addresses/export/{address}pour récupérer votre clé privée (mot de passe requis).
::: danger Conservez votre mot de passe en lieu sûr Nous ne stockons jamais les clés privées ou les mots de passe au sein de notre application — ni dans notre base de données, ni dans nos mécanismes de journalisation ou de gestion des exceptions. Si vous perdez votre mot de passe, nous ne pouvons pas restaurer la clé privée de votre wallet. :::
Exemple de requête
Section intitulée « Exemple de requête »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())Exemple de transactions
Section intitulée « Exemple de transactions »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. Wallets non sécurisés (à utiliser avec précaution)
Section intitulée « 2. Wallets non sécurisés (à utiliser avec précaution) »Si vous ne fournissez pas de mot de passe dans votre requête de création d’adresse, la clé privée sera retournée directement dans la réponse. Cela signifie que la clé privée doit être stockée et gérée de manière sécurisée de votre côté.
::: danger À utiliser uniquement pour des wallets non permanents Comme la clé privée est incluse dans la réponse, il vous incombe de la stocker et de la protéger de manière sécurisée. Nous recommandons fortement d’utiliser plutôt des wallets protégés par mot de passe. Si une personne accède à votre clé privée, elle peut contrôler tous les fonds du wallet. :::
Risques de sécurité
Section intitulée « Risques de sécurité »- La clé privée est exposée dans la réponse de l’API, ce qui la rend vulnérable en cas d’interception.
- Si un attaquant accède à la clé privée, il peut contrôler entièrement le wallet.
- Cette méthode ne doit être utilisée que pour des wallets temporaires ou des adresses à usage unique.
Exemple de requête
Section intitulée « Exemple de requête »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())Exemple de transactions
Section intitulée « Exemple de transactions »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"}'