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.
Der vollständige Quellcode ist auf Etherscan verifiziert.
Mainnet (Ethereum)
| Contract | Address | Links |
|---|---|---|
| TokentaggedAssets | 0xeEdCB10A43306F1fc8Bc80B8B0Bf16112c739815 | Etherscan ↗ |
| SignerRegistry | 0x51670DB4a91153A94d287BaFe45474CC40f6b8E3 | Etherscan ↗ |
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
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:
truenur, 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
);