Select Page

This is the scrapbook.

Here is where random information goes. Most of them are little snippets of information, stories, quick fixes or references to additional scrapbook-style information – short notes that were helpful to me and might be useful to someone else. Of course, this is only meant as a suggestion, without any guarantee or assurance of function or feasibility. If you would like my professional, technical support, please contact me at https://c-7.de.

Die “Kladde”

Hier landen zufällige Informationen. Die meisten davon sind kleine Informationsschnipsel,Geschichten,  schnelle Lösungen oder Verweise auf zusätzliche Informationen im Sammelalbum-Stil – kurze Notizen, die für mich hilfreich waren und vielleicht auch für jemand anderen nützlich sein können. Natürlich ist das hier nur als Anregung zu verstehen, ohne jegliche Gewähr oder Zusicherung einer Funktion oder Machbarkeit. Wenn Sie meine professionelle, technische Unterstützung möchten, Kontaktieren Sie mich bitte über https://c-7.de

Batch/Stack-Upload von NFT zu OpenSea.io

by | Feb 1, 2022 | Tech Corner

Viele Kunstschaffende überlegen gerade, auf den NFT-Zug aufzuspringen. Während das Hochladen einiger Fotos oder anderer Werke auf Plattformen wie OpenSea noch überschaubar ist, wird das Hochladen einer großen Anzahl schnell sehr zeitaufwändig.

Geeignete Apps

Über die Google-Suche oder GitHub lassen sich einige Apps (meist Python-Skripte) finden, die den automatisierten Upload auf OpenSea.io unterstützen. Die Entwicklung ist sehr dynamisch und es kommen täglich neue hinzu. Beispiele sind: NFTs-Upload-to-OpenSea oder Bulk-uploader-NFT

Aber Achtung, beide Beispiele funktionieren nicht auf Anhieb, haben viele ‘issues‘ und/oder Links zu fremden Sammlungen/Accounts eingebettet.

Kein Plug-and-Play

Wie bei allem ist auch hier Vorsicht geboten, und man sollte sich weder darauf verlassen noch erwarten, dass diese Anwendungen direkt nach dem Auspacken funktionieren.

Zunächst einmal muss in den meisten Fällen auch eine entsprechende Entwicklungsumgebung installiert werden, z.B. JDK oder Python in der richtigen, passenden Version. Auch hier gibt es verschiedene Wege, die natürlich vom Betriebssystem abhängen. Python z.B. kann auf dem Mac auf verschiedene Weise installiert werden, z.B. über Anaconda oder Miniconda (?) oder Homebrew.

Dann gibt es noch andere Module wie Selenium und eine “fernsteuerbare” Browserversion, oft Chromedriver – auch in der zur Chrome-Installation passenden Version.

Wenn dies erledigt ist, führen Sie pip install -r requirements.txt vorzugsweise in einer virtuellen Umgebung

Wenn der fernsteuerbare Chrome (Chromedriver) Chrome-Erweiterungen verwenden soll, müssen diese ebenfalls separat behandelt werden, da Chromedriver nicht auf den normalen Benutzerbereich zugreifen kann. Natürlich müssen Windows, MacOS und Linux unterschiedlich betrachtet werden.

Mit Sicherheit

Ein großes Problem ist, dass man diesen Skripten in der Regel den Zugang zu seinem Wallet zur Verfügung stellen muss. Oft befinden sich auch Links zu (fremden) Collections im Programmcode, oft nicht mit der Absicht, Zugangsdaten zu stehlen, sondern als “Beispiel”.

Vorsicht

Deshalb die dringende Warnung: Trauen Sie keinem Programmcode, den Sie nicht verstehen oder nicht gelesen haben. Wie leicht ist es, in den Programmzeilen einen Link zu verstecken, der alle Ihre vertraulichen Daten und damit den Zugang zu Ihrem Wallet verrät.

Das Risiko minimieren, aber wie?

OpenSea.io bietet die Möglichkeit, die Verwaltung von Sammlungen zu delegieren, indem man Mitstreiter (Collaborator) einlädt. Nun könnten Sie auf die Idee kommen, ein zusätzliches Konto zu erstellen, um das Risiko zu minimieren, nur diese Sammlung an ein speziell erstelltes Konto auf OpenSea zu delegieren. Dieses neue Konto hat nur Zugriff auf diese eine Sammlung und somit wäre das Risiko begrenzt. Die Idee ist gut, aber leider funktioniert sie in der Praxis nicht. Wenn Sie NFTs unter diesem neuen Konto hochladen, können sie nur von diesem Konto aus “minted” und in Verkäufen oder Auktionen angeboten werden. Es mag Anwendungsfälle geben, in denen dies ausreichend ist, aber im Allgemeinen ist es nicht sehr praktisch.

Eine andere Möglichkeit besteht darin, nur die Fernsteuerfunktion des Browsers zu verwenden und die Anmeldung und alle erforderlichen Eingaben oder Bestätigungen manuell vorzunehmen. Das funktioniert bei einer überschaubaren Anzahl von hochzuladenden Werken, etwa bei 100 bis 200, recht gut. Eine kleine Schwierigkeit dabei ist, dass Chrome sich in den meisten Fällen die Benutzereinstellungen nicht merkt, wenn das Skript beendet wird. Dies kann leicht geändert werden, indem man ein Verzeichnis “User Space” anlegt und dieses übergibt: ##chromeoptions opt = Optionen() opt.add_argument(“user-data-dir=PATH_TO_USER_DIR”) Sie können dies leicht mit chrome://version/ prüfen.

Um Chrome-Erweiterungen nutzen zu können, müssen diese zunächst exportiert werden, da Chromedriver aufgrund von Sicherheitseinstellungen in der Regel keinen Zugriff auf sie hat. chrome://erweiterungen/ “Erweiterung packen”.

Sie wird dann an Chromedriver übergeben mit opt.add_extension(EXTENSION_PATH)

Sind alle Voraussetzungen erfüllt, der Programmcode angepasst und die Tests bestanden, dann kann es an das Hochladen der Inhalte gehen.