Zum Hauptinhalt springen

Contract Reference

Technische Referenz für Entwickler, die mit den Tokentagged Smart Contracts interagieren möchten.

Deployed Contracts

Hier finden Sie die offiziellen Adressen unserer Smart Contracts. Überprüfen Sie stets, dass Sie mit den richtigen Adressen interagieren.

Verified Source Code

Der vollständige Quellcode ist auf Etherscan verifiziert.

Mainnet (Ethereum)

ContractAddressLinks
TokentaggedAssets0xeEdCB10A43306F1fc8Bc80B8B0Bf16112c739815Etherscan ↗
SignerRegistry0x51670DB4a91153A94d287BaFe45474CC40f6b8E3Etherscan ↗

TokentaggedAssets (Public Collection)

Der Hauptvertrag für öffentliche Mints.

mintTokentag

Mintet einen neuen Token basierend auf einem physischen Scan.

function mintTokentag(
uint256 id,
string memory tokenURI,
uint256 amount,
address royaltyReceiver,
uint96 royaltyFraction,
uint blocknumber,
uint8 v, bytes32 r, bytes32 s, // 1. Chip Signature (User Action)
bytes memory cardAtstSignature, // 2. Card Attestation (Integrity)
bytes memory atstSignature // 3. Root Attestation (Authenticity)
) external
  • id: Die Token-ID (enthält die Card-Adresse und Typ-Flags).
  • blocknumber: Blocknummer der Signaturerstellung (Replay-Schutz).
  • v, r, s: Die Signatur der aktuellen Transaktion (generiert mit dem Card-Private-Key).
  • cardAtstSignature: Nachweis, dass der Card-Key vom Master-Key abgeleitet wurde.
  • atstSignature: Nachweis, dass der Master-Key vom Issuer (Tokentagged) signiert wurde.

burn

Ermöglicht Nutzern, den digitalen Zwilling zu zerstören.

function burn(uint256 id, uint256 amount) external
Irreversible

Wenn der letzte Token einer ID geburnt wird (totalSupply == 0), wird der Status _burned[id] = true gesetzt. Dieser Chip kann niemals erneut gemintet werden.


Core Verification

Die Low-Level-Verifikationsfunktion in Tokentagged.sol.

verifyTokentag

Verifiziert die gesamte Signaturkette (Chain of Trust), ohne einen Mint auszuführen. Nützlich für Read-Only-Checks oder Off-Chain-Validierungen.

function verifyTokentag(
uint256 id,
uint blocknumber,
uint8 v,
bytes32 r,
bytes32 s,
bytes calldata data
) external returns (bool);
  • data: Beliebige Daten, die in die Verifikations-Signatur einbezogen werden. Dies ermöglicht das Anhängen zusätzlicher Informationen (z.B. ein Arweave-Link), die zusammen mit der Verifikation signiert werden und so eine dauerhafte Speicherung signierter Daten für das Tokentag auf der Blockchain ermöglichen.

TokentaggedSignerRegistry

Die spezifische Verifikationslogik für die "Chain of Trust". Dieser Contract speichert die öffentlichen Schlüssel der Hersteller (Issuer) und prüft, ob eine Chip-Signatur gültig und nicht geblacklistet ist.

verifyTokentagAuthenticity

Der Haupteinstiegspunkt für die Verifikation durch Dritte. Prüft, ob eine gegebene cardAtstSignature zu einem gültigen Master Key gehört und ob dieser Master Key zu einem vertrauenswürdigen Issuer gehört.

function verifyTokentagAuthenticity(
address id,
bytes memory cardAtstSignature,
bytes memory atstSignature
) external view returns (bool)
  • id: Die Adresse des Chips (Card-Key-Adresse).
  • cardAtstSignature: Die Signatur, die die Verbindung zwischen Master-Key und Card-Key beweist.
  • atstSignature: Die Signatur, die die Verbindung zwischen Issuer und Master-Key beweist.
  • Returns: true nur, wenn die gesamte Kette gültig ist und der Master Key nicht geblacklistet ist.

Management Functions (Governance)

(Only Owner)

  • authorizeSigner(address _signer): Fügt einen neuen autorisierten Issuer-Key hinzu (z. B. für einen neuen Produktionsbatch).
  • blacklistMaster(address _master): Entzieht einem bestimmten physischen Chip (Master Key) das Vertrauen, wodurch alle abgeleiteten Tokens ungültig werden. Wird im Fall physischer Kompromittierung/Extraktionsversuche verwendet.

Events

TokentagVerified

Wird emittiert, wenn eine Signatur erfolgreich verifiziert wurde.

event TokentagVerified(
uint256 indexed id,
address indexed sender,
uint blocktime,
bytes data
);