Obwohl es eine ausführliche Dokumentation von den Erstellern des BRC20 Token Standards gibt, ist diese in vielen Teilen sehr theoretisch. Das ist grundsätzlich gut, aber wenn man nur alle paar Monate Zeit hat, sich mit dem Thema Ordinals und dessen Ökosystem auseinanderzusetzen und jedes Mal erneut die Dokumentation durchgehen muss, finde ich das eher lästig als hilfreich. Deshalb habe ich mich entschlossen, eine kleine Schritt-für-Schritt-Anleitung zu erstellen, wie man Tokens erstellt, mintet und transferiert.
Dieses Tutorial setzt voraus, dass eine vollständig synchronisierte Bitcoin-Core Wallet und Ord Wallet installiert wurde. Weiterhin gehe ich davon aus, dass jemand, der die Ord Wallet installiert hat, auch weiß, wie er sie bedienen muss. Daher werde ich in diesem Beitrag nicht weiter darauf eingehen. Solltet ihr dennoch Interesse an einer Anleitung dazu haben, lasst es mich in den Kommentaren wissen.
Vorrausetzungen zusammengefasst:
Zuerst erstellen wir eine Textdatei. Dabei ist es wichtig, dass der MIME-Typ: "text/plain" und der Zeichensatz "charset=utf-8" ist.
Wie dies funktioniert, variiert je nach Betriebssystem. IDEs und Editoren wie Notepad++ zeigen jedoch in der Regel an, welcher Zeichensatz und welcher MIME-Typ gesetzt ist. In dieser Anleitung erkläre ich den Vorgang für Linux bzw. die Shell. Dies sollte auch unter Windows in einer WSL-Shell funktionieren.
Ich erstelle meine Textdatei mit "iconv" und nenne meinen Token beispielhaft "sil3":
1echo "" | iconv -t UTF-8 > deploy-sil3.txt
Jetzt bestimmen wir, wie unser Token heißen soll und welche Menge davon vorhanden sein wird. Im Grunde spezifizieren wir unseren Token, um ihn später fest und unveränderlich in der Timechain zu verankern.
Bearbeitet nun die Textdatei und fügt den folgenden Inhalt ein. Passt dabei natürlich den Namen "tick", die maximal verfügbare Menge an Token "max" und das Limit "lim" für die maximale Anzahl an Token pro Minting-Vorgang an.
1{ 2 "p": "brc-20", 3 "op": "deploy", 4 "tick": "sil3", 5 "max": "21000000", 6 "lim": "1000" 7}
Hier eine Kurze Erklärung was die Einzellnen Schlüssel bedeuten:
"p": = Protokoll: Hilft anderen Systemen, Brc-20-Ereignisse zu identifizieren und zu verarbeiten "op": = Operation: Art des Ereignisses (Bereitstellen, Mint, Transfer) "tick": = Ticker: max. 4-Buchstaben-Kennung des BRC-20 "max": = Max. Versorgung: Stellen Sie die maximale Versorgung des BRC-20 ein "lim": = Max. Limit pro Mint
Jetzt können wir unseren Token deployen. Dies geschieht mit dem folgenden Befehl und bitte lesst vorab die Erläuterung durch:
1ord wallet inscribe --destination ZIEL_ADRESSE ~/deploy-sil3.txt --fee-rate 26
Erläuerung:
--destination:
Dies ist ein optionaler Befehl, den ich euch jedoch empfehlen würde einzusetzen. In unserem Fall gehen wir davon aus, dass wir uns vorab eine Adresse mit dem Befehl `wallet receive generiert haben. Diese Adresse sollten wir immer beim Minten und Transferieren angeben. Der Grund dafür ist, dass die Ord Wallet bei Nichtangabe jede Inscription auf eine neue Adresse schreibt. Das bedeutet, wenn wir z.B. 10 Mal eine Mint-Inscription für unsere Tokens erstellt haben, besitzen wir auch 10 verschiedene Adressen. Möchten wir nun 10.000 Tokens (10 x 1.000) versenden, müssten wir für jede dieser Adressen eine Transfer-Inscription erstellen, da die Tokens der einzelnen Adressen nicht zusammengefasst werden können. Dies ist nur möglich, wenn alle Tokens auf derselben Adresse liegen. So sparen wir letztendlich sowohl Zeit als auch Transaktionsgebühren.
--fee-rate:
Wichtig: Prüft Vorab auf https://mempool.space/ welche Gebühren aktuell erhoben werden, setzt diese nicht zu niedrig!
Notiz: Ihr könnt als Ziel-Adresse natürlich auch jede andere Taproot Adresse angeben. Beachtet aber dabei das nicht alle Wallets wissen wie Sie mit Inscriptions umgehen sollen. Daher nutzt nur Offiziel unterstützte Wallet (Unisat, Xverse, Hiro, Ordinalsafe).
Optional: Wenn ihr den Befehl vorab testen wollt schreibt einfach ein
--dry-run
hinterwallet inscribe
.
Nach dem ihr den Befehl abgesendet habt, solltet ihr eine ähnliche Ausgabe erhalten:
1{ 2 "commit": "..", 3 "inscription": "...", 4 "reveal": "...", 5 "fees": 9594 6}
commit: Ist die TXID welche ihr jetzt mit Mempool verfolgen könnt. Einfach danach suchen.
Ob alles erfolgreich war prüfe ich immer auf OKX da ich finde das dieser den besten Ordinals Explorer bietet. Ihr könnt aber auch jeden anderen nutzen der euch genug Informationen liefert.
Beispiel ORDI Token: OKX-Explorer
Nach dem wir mit "Deploy" unseren Token definiert haben kann nun jetzt jeder User mit dem "Mint" Prozess sich seinen Anteil an Tokens sichern.
Genau wie beim Deployment erstellen wir uns wieder ein Textdatei.
1echo "" | iconv -t UTF-8 > mint-sil3.txt 2
Der Inhalt schaut nur ein wenig anders aus:
1{ 2 "p": "brc-20", 3 "op": "mint", 4 "tick": "sil3", 5 "amt": "1000" 6}
Erläuterung:
amt: Gibt den zu prägenden Betrag des BRC-20 an.
Wichtig: "amt" darf nicht das Limit überschreiten welches wir im Deployment festgelegt haben.
Der Befehl ist der selbe wie beim Deployment vorgang, wir müssen nur das richtige Textfile angeben. Ich empfehle hier auch wieder immer auf die gleiche Adresse (destination) die Tokens zu Minten.
1ord wallet inscribe --destination ZIEL_ADRESSE ~/mint-sil3.txt --fee-rate 26
Nach dem ihr den Befehl abgesendet habt, solltet ihr eine ähnliche Ausgabe erhalten:
1{ 2 "commit": "..", 3 "inscription": "...", 4 "reveal": "...", 5 "fees": 9594 6}
Ob alles geklappt hat kann wieder mit dem OKX-Explorer überprüft werden.
Notiz: Natürlich könnt ihr beim Minten auch direkt in eure Unisat oder Xverser Wallet Minten. Dann ist "Punkt 3. Transfer" für euch nicht mehr wichtig.
Der Transfer ist etwas umständlich und besteht aus folgenden schritten:
Wir müssen hier stets eine "--destination" angeben, die ausreichend Token besitzt. Deshalb ist es so wichtig, dass wir beim Minten immer dieselbe Adresse verwenden. Nehmen wir an, dass wir 10-mal 1.000 Tokens auf die gleiche Adresse gemintet haben, können wir nun bis zu 10.000 Tokens direkt transferieren.
Wie beim Deployment und Minten, erstellen wir uns wieder ein Textdatei.
1echo "" | iconv -t UTF-8 > transfer-sil3.txt 2
Dieses Mal fügen wir folgenden Inhalt hinzu und geben bei der zu transferierenden Menge (amt) in unserem Beispiel "5000" Tokens an, die wir versenden möchten:
1{ 2 "p": "brc-20", 3 "op": "transfer", 4 "tick": "TokenName", 5 "amt": "5000" 6}
Wie auch schon beim Deployen und Minten ist auch hier die vorgehensweise die selbe. Wir geben bei unserem Befehl die --destination an welche genug Tokens hält (min. soviele wie wir versenden möchten) und achten darauf das wir die eben erstellte transfer-sil3.txt Datei angeben.
1ord wallet inscribe --destination ZIEL_ADRESSE ~/transfer-sil3.txt --fee-rate 26
Nach dem ihr den Befehl abgesendet habt, solltet ihr eine ähnliche Ausgabe erhalten:
1{ 2 "commit": "..", 3 "inscription": "...", 4 "reveal": "...", 5 "fees": 9594 6}
Sobald die Transaktion bestätigt wurde könnt ihr wieder in eurem Explorer eurer Wahl prüfen ob der Token Transfer gültig ist.
Dieser vorgang ist jetzt relativ simpel. Ihr sendet einfach die eben erstellte "Transfer" Inscription an eine andere Ordinals fähige Adresse.
Dies geht mit folgenden Befehl:
1ord wallet send --fee-rate 26 DESTINATION ADRESSE INSCRIPTION_ID
Erläuterung:
Destination Adresse: Wohin ihr die Tokens verschiecken wollt INSCRIPTION_ID: Die Inscription ID von der eben erstellten "Transfer" Inscription.
Der Umgang mit dem BRC20-Token kann anfangs überwältigend erscheinen. Trotz umfassender Dokumentationen fehlt es oft an praxisnahen Anleitungen. Deshalb habe ich dieses Tutorial erstellt, um die Token-Erstellung, -Prägung und -Transferierung verständlich darzustellen. Besonders hervorzuheben ist die Bedeutung von einheitlichen Adressen beim Minten. Dies spart nicht nur Zeit, sondern auch Transaktionsgebühren. Mit dieser Anleitung hoffe ich, Einsteigern einen klaren und einfachen Weg im Umgang mit dem BRC20-Token und der Ord Wallet aufzuzeigen.