En bref
L’API de Signature Blockradar vous permet de signer cryptographiquement des messages texte et des données structurées (données typées) à l’aide des clés privées de votre portefeuille. Les signatures prouvent la propriété du portefeuille auprès de services tiers sans déplacer de fonds ni payer de frais de réseau (gas).
L’API de Signature Blockradar vous permet de signer cryptographiquement des messages texte et des données structurées (données typées) à l’aide des clés privées de votre portefeuille. Les signatures prouvent la propriété du portefeuille auprès de services tiers sans déplacer de fonds ni payer de frais de réseau (gas).
Prérequis
Avant d’utiliser l’API de Signature, assurez-vous d’avoir :Clé API
Obtenez votre clé API depuis le Tableau de bord Blockradar. Accédez à Developers pour en générer une.
Portefeuille créé
Créez un portefeuille principal depuis le Tableau de bord Blockradar. Accédez à Wallets et créez-en un pour la blockchain souhaitée. Vous aurez besoin du
walletId pour les opérations de signature.Comment ça fonctionne
L’API de Signature produit une signature cryptographique qui prouve que vous contrôlez une adresse de portefeuille spécifique. Le résultat signé peut être vérifié par n’importe quel tiers sans accéder à vos clés privées.Signature de message
Signez des messages texte pour prouver la propriété du portefeuille. Fonctionne sur toutes les blockchains prises en charge : EVM, Tron et Solana.
Signature de données typées
Signez des données structurées selon le standard EIP-712. Utilisé pour les approbations sans gas (EIP-2612 Permit) et les transferts autorisés (EIP-3009). EVM uniquement.
Cas d’utilisation courants
- Inscription auprès d’un fournisseur tiers — Prouvez que vous possédez une adresse lors de l’intégration avec des services comme Iron, Circle ou d’autres protocoles DeFi
- Approbations de tokens sans gas — Signez des messages EIP-2612 Permit pour autoriser la dépense de tokens sans transaction on-chain
- Transferts autorisés — Signez des messages EIP-3009 TransferWithAuthorization pour des transferts délégués
- Attestations hors chaîne — Créez des preuves vérifiables d’intention ou d’accord liées à une adresse de portefeuille
Portefeuille principal vs Adresse enfant
L’API de Signature est disponible à deux niveaux :Portefeuille principal
Signez avec les clés du portefeuille principal. Idéal pour les opérations de trésorerie et les intégrations avec des fournisseurs.
Adresse enfant
Signez avec les clés d’une adresse enfant spécifique. À utiliser lorsque le tiers exige une signature provenant d’une adresse de dépôt.
Points de terminaison
| Opération | Portefeuille principal | Adresse enfant |
|---|---|---|
| Signer un message | POST /v1/wallets/{walletId}/signing/message | POST /v1/wallets/{walletId}/addresses/{addressId}/signing/message |
| Signer des données typées | POST /v1/wallets/{walletId}/signing/typed-data | POST /v1/wallets/{walletId}/addresses/{addressId}/signing/typed-data |
Signature de message
Signez un message texte avec la clé privée de votre portefeuille. L’API signe le message, vérifie que la signature correspond à l’adresse du portefeuille et renvoie à la fois la signature et un enregistrement de transaction.Blockchains prises en charge
| Blockchain | Standard de signature | Format de signature |
|---|---|---|
| EVM (Ethereum, Polygon, BSC, Base, Arbitrum, Optimism, Celo) | EIP-191 (personal_sign) | Encodé en hexadécimal avec les composants r, s, v |
| Tron | TronWeb signMessageV2 | Chaîne encodée en hexadécimal |
| Solana | Ed25519 | Chaîne encodée en Base58 |
Paramètres de la requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
message | string | Oui | Le message texte à signer. Maximum 4 096 caractères. |
reference | string | Non | Votre identifiant de suivi interne. Utilisez-le pour l’idempotence — les références en double sont rejetées. |
metadata | object | Non | Paires clé-valeur personnalisées stockées avec l’enregistrement de transaction. |
Exemple de signature de message
Réponse EVM
Réponse Tron / Solana
Pour Tron et Solana, l’objetsignedTransaction contient uniquement le champ signature (pas de composants r, s, v) :
Champs de la réponse
| Champ | Description |
|---|---|
id | Identifiant unique de la transaction pour l’enregistrement de signature |
hash | La signature cryptographique. Pour EVM : chaîne hexadécimale. Pour Tron : chaîne hexadécimale. Pour Solana : chaîne base58. |
status | Toujours SUCCESS pour les signatures complétées |
type | Toujours SIGNED pour les transactions de signature |
senderAddress | L’adresse du portefeuille qui a produit la signature |
signedTransaction | Composants de la signature. EVM inclut r, s, v et la signature complète. Tron et Solana incluent uniquement signature. |
reference | Votre chaîne de référence fournie (le cas échéant) |
metadata | Votre objet de métadonnées fourni (le cas échéant) |
Signature de données typées (EVM uniquement)
Signez des données structurées selon le standard EIP-712. Ceci est utilisé pour les approbations sans gas, les transferts délégués et d’autres flux d’autorisation on-chain nécessitant une signature structurée.Standards pris en charge
| Standard | Cas d’utilisation |
|---|---|
| EIP-712 | Signature générique de données structurées |
| EIP-2612 (Permit) | Approbations de tokens sans gas — approuver la dépense sans transaction on-chain |
| EIP-3009 (TransferWithAuthorization) | Transferts délégués — autoriser un transfert qu’un tiers soumet |
Paramètres de la requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
domain | object | Oui | Séparateur de domaine EIP-712. Inclut name, version, chainId et verifyingContract. |
types | object | Oui | Définitions de types pour les données structurées. |
message | object | Oui | Les données à signer, conformes aux définitions de types. |
Exemple EIP-2612 Permit
Réponse des données typées
Champs de l’objet domaine
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Le nom du domaine de signature (par ex., le nom du token ou de la dApp) |
version | string | Oui | La version du domaine |
chainId | number | Oui | L’identifiant de la chaîne. Doit correspondre au réseau blockchain du portefeuille. |
verifyingContract | string | Oui | L’adresse du contrat qui vérifiera la signature |
salt | string | Non | Sel de domaine optionnel pour EIP-712 v4 |
Signature avec une adresse enfant
Signez des messages ou des données typées en utilisant une adresse enfant spécifique au lieu du portefeuille principal :Événements webhook
Les opérations de signature déclenchent un webhook avec l’enregistrement de transaction :| Événement | Description |
|---|---|
signed.success | Message ou données typées signés et vérifiés |
Contenu du webhook
Exemple de flux complet
Voici une implémentation complète pour signer un message et soumettre la signature à un fournisseur tiers :Réponses d’erreur
Portefeuille non trouvé
Portefeuille non trouvé
walletId n’existe pas ou n’appartient pas à votre entreprise.Adresse non trouvée
Adresse non trouvée
addressId n’existe pas ou n’est pas associé au portefeuille spécifié.Blockchain non prise en charge (données typées)
Blockchain non prise en charge (données typées)
Incompatibilité du Chain ID
Incompatibilité du Chain ID
chainId dans votre objet domaine de données typées ne correspond pas au réseau blockchain du portefeuille.Échec de la vérification de la signature
Échec de la vérification de la signature
Bonnes Pratiques
Sécurité
- Utilisez des références — Suivez les opérations de signature avec des identifiants de référence uniques pour les pistes d’audit et l’idempotence
- Vérifiez le message — Avant de signer, confirmez que le contenu du message correspond à ce que le service tiers attend
- Limitez la longueur du message — Les messages sont limités à 4 096 caractères. Gardez les messages concis et spécifiques
Intégration
- Pas de frais de gas — Les opérations de signature sont hors chaîne et ne nécessitent pas de solde en tokens natifs
- Réponse immédiate — Les signatures sont générées de manière synchrone. Aucun polling ou attente de webhook n’est nécessaire pour la signature elle-même
- Écoutez les webhooks — Utilisez les webhooks pour maintenir une piste d’audit de tous les événements de signature
Données typées
- Faites correspondre les Chain IDs — Le
chainIddans votre domaine doit correspondre au réseau du portefeuille. Utilisez les Chain IDs sandbox (testnet) pour les tests et les Chain IDs de production (mainnet) pour les opérations en direct - Vérifiez le contrat — Le
verifyingContractdoit être le contrat qui vérifiera la signature on-chain
Référence API
Points de terminaison du portefeuille principal
| Point de terminaison | Description |
|---|---|
| Signer un message | Signer un message texte |
| Signer des données typées | Signer des données structurées EIP-712 |
Points de terminaison de l’adresse enfant
| Point de terminaison | Description |
|---|---|
| Signer un message | Signer un message texte depuis une adresse enfant |
| Signer des données typées | Signer des données structurées EIP-712 depuis une adresse enfant |

