L’API Wallet est en version bêta. Les points de terminaison et les formats de réponse peuvent changer.
Aperçu
Le point de terminaison de l’historique des transactions récupère l’historique complet des transactions d’un portefeuille Solana en utilisant l’API Enhanced Transactions. Il renvoie des transactions analysées et lisibles par l’homme avec des modifications de solde pour chaque transaction, dans l’ordre inverse chronologique (la plus récente d’abord). Le point de terminaison renvoie jusqu’à 100 transactions par demande, donc la pagination est manuelle. Utilisez le paramètrebefore avec pagination.nextCursor pour récupérer la page suivante, et lisez pagination.hasMore pour savoir quand plus de résultats sont disponibles. Chaque demande est un appel API unique et coûte 100 crédits.
Le paramètre tokenAccounts contrôle si les transactions impliquant des comptes de jetons détenus par le portefeuille sont incluses :
balanceChanged(recommandé) : inclut les transactions qui ont modifié les soldes des comptes de jetons, filtrant le spam.none: uniquement les interactions directes avec le portefeuille.all: toutes les transactions de comptes de jetons, y compris le spam.
Quand l’utiliser
Utilisez l’API de l’historique des transactions lorsque vous avez besoin de :- Afficher un flux de transactions : montrer aux utilisateurs leur historique complet de transactions.
- Calculer le PnL : suivre les gains et les pertes sur toutes les transactions.
- Impôts et comptabilité : générer des rapports de transaction complets pour la déclaration fiscale.
- Analyse de portefeuille : analyser les modèles de trading et l’activité.
- Trails d’audit : maintenir des enregistrements complets de l’activité du portefeuille.
- Reconstruction de solde : reconstruire les soldes actuels à partir des données historiques.
Démarrage rapide
Requête d’historique de base
Obtenez les transactions les plus récentes avec des modifications de solde :- JavaScript
- Python
- cURL
Pagination pour l’historique complet
Récupérez toutes les transactions en utilisant la pagination avec le paramètrebefore :
- JavaScript
- Python
Paramètres de requête
Types de transactions disponibles
Le paramètretype prend en charge le filtrage par ces types de transactions :
SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING, NFT_MINT, NFT_CANCEL_LISTING, TOKEN_MINT, BURN, COMPRESSED_NFT_MINT, COMPRESSED_NFT_TRANSFER, COMPRESSED_NFT_BURN, CREATE_STORE, WHITELIST_CREATOR, ADD_TO_WHITELIST, REMOVE_FROM_WHITELIST, AUCTION_MANAGER_CLAIM_BID, EMPTY_PAYMENT_ACCOUNT, UPDATE_PRIMARY_SALE_METADATA, ADD_TOKEN_TO_VAULT, ACTIVATE_VAULT, INIT_VAULT, INIT_BANK, INIT_STAKE, MERGE_STAKE, SPLIT_STAKE, CREATE_AUCTION_MANAGER, START_AUCTION, CREATE_AUCTION_MANAGER_V2, UPDATE_EXTERNAL_PRICE_ACCOUNT, EXECUTE_TRANSACTION
Exemples de filtres
- Filtrer par type
- Filtre des comptes de jetons
- Filtres combinés
Format de réponse
Remarques sur les champs
timestamp: secondes Unix. Peut êtrenullpour les transactions très récentes qui n’ont pas encore été entièrement traitées.error:nullpour les transactions réussies ; une valeur d’erreur pour les échecs. Les transactions échouées engendrent toujours des frais.balanceChanges: comment les avoirs du portefeuille ont changé lors de la transaction — unamountpositif concerne les jetons reçus, unamountnégatif concerne les jetons envoyés ou dépensés.mint(dansbalanceChanges) : adresse de frappe de jeton, ou"SOL"pour SOL natif.amount(dansbalanceChanges) : lisible par l’homme, déjà divisé pardecimals—-0.05signifie −0.05 SOL, pas −0.05 lamports. Ce point de terminaison n’inclut pas de champamountRawbrut.
Exemple de modifications de solde
Cas d’utilisation
Calculer le volume total des transactions
Additionner tous les transferts pour obtenir le volume des transactions :Générer un rapport fiscal
Créer un rapport de transaction pour la déclaration fiscale :Suivre les transactions échouées
Trouver toutes les transactions échouées pour comprendre les erreurs :Reconstruire un solde historique
Calculer quel était le solde à un moment donné :Analyser les frais de transaction
Calculer le total des frais payés :Meilleures pratiques
- Utiliser la pagination pour un historique complet. Certains portefeuilles ont des centaines de milliers de transactions ; paginer toujours lors de leur récupération.
- Mettre en cache les données historiques. Les transactions historiques ne changent jamais. Les mettre en cache localement et ne récupérer que les nouvelles transactions.
- Gérer les transactions échouées. Vérifier le champ
errorpour distinguer les transactions réussies des échouées. Les transactions échouées engendrent toujours des frais. - Utiliser les horodatages pour le filtrage des dates. Les horodatages sont en secondes Unix. Convertir en dates locales pour l’affichage et le filtrage.
Erreurs communes
Prochaines étapes
Transferts de jetons
Une vue uniquement transferts avec informations sur l’expéditeur/le destinataire — plus simple que l’historique complet.
Aperçu de l'API Wallet
Tous les points de terminaison de l’API Wallet et les conventions partagées.
Référence API
Schémas de demande et de réponse pour l’historique des transactions.