So erhalten Sie den Wertverlauf von ERC721 Token

Ich versuche herauszufinden, wie ich eine Art "Verlauf" von Werten für einen bestimmten ERC721 (z. B. KnownOrigin) erhalten kann.

Welche wichtigen Punkte sind zu beachten? Ist etwas über Smart Contract machbar oder ist es besser, API (wie https://api.ethplorer.io/ oder https://api.etherscan.io/ ) zu verwenden?

Gibt es dafür eine Standardmethode? Was ist der beste Ansatz?

Bezieht es sich irgendwie auf das Thema "interne Transaktion"?

Ich habe Online-Tools gesehen, die diese Informationen enthalten, also muss es eine Möglichkeit geben, dies zu tun.

Vielen Dank im Voraus

Ich brauche bitte einen spezifischeren Anwendungsfall.
Anwendungsfall: Ich habe einen bestimmten Token, der ERC721 im Smart Contract implementiert. Wie kann ich seinen „Transfer“-Verlauf nachverfolgen? Zum Beispiel gehörte es der Adresse 0x123 und dann der Adresse 0x234. Eigentlich bin ich die ganzen Ereignisse durchgegangen und habe es auf einer DB abgebildet, um es griffbereit zu haben. Gibt es eine andere "Abfrage", die ich tun kann, um diese Informationen zu erhalten?
ERC-721 definiert nicht den Wert einer NFT. Es ist möglich, die Besitzergeschichte zu erhalten.

Antworten (2)

Dies muss für Standard-Token off-chain erfolgen.

Die ERC-721-Standardspezifikation – http://eips.ethereum.org/EIPS/eip-721 – bietet keine Schnittstelle, um den historischen Besitz eines Tokens abzufragen. Andere Erweiterungen des Standards können diese zusätzliche Funktionalität beinhalten, aber dies wird auf Vertragsbasis implementiert. Beispielsweise wird CryptoKitties (wie bereitgestellt) niemals eine Möglichkeit bieten, diese Informationen zu erhalten, unabhängig davon, welche anderen Technologien auftauchen.

Für Off-Chain-Anwendungen (dApps, Server) können Sie diese Informationen finden, indem Sie das TransferEreignis durchsuchen und Ihre eigene Datenbank mit Übertragungen und anderen Protokollinformationen erstellen.

Schauen Sie für eine gelegentliche Inspektion einfach nach dem Token auf Etherscan, sie haben eine Website, auf der Sie jeden Vertrag und die darauf befindlichen Token finden können.

Der beste Weg, um den Übertragungsverlauf abzurufen, sind Ereignisprotokolle. Abhängig von der Bibliothek, die Sie für die Interaktion mit dem EVM verwenden, können Sie die Protokolle bei Ihrem Knotenanbieter abfragen. In der Abfrage können Sie ein Thema angeben, das dem Übertragungsereignis entspricht. Wenn du zum Beispiel hier schaust:

https://etherscan.io/address/0xd35147be6401dcb20811f2104c33de8e97ed6818#events

[topic0] aller 'Transfer'-Ereignisse ist gleich. Es ist eine gehashte Version des Übertragungsereignisses zusammen mit seinen Argumenttypen.

Hier ist eine gute Erklärung, wie es funktioniert: https://medium.com/mycrypto/understanding-event-logs-on-the-ethereum-blockchain-f4ae7ba50378

Und hier ist eine Referenz für Abfragefilter auf ethers.js: https://docs.ethers.io/v5/concepts/events/