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 from NFT to OpenSea.io

by | Feb 1, 2022 | Tech Corner

Many artists are considering jumping on the NFT bandwagon. While uploading a few photos or other works to platforms like OpenSea is still manageable, uploading a large number quickly becomes very time-consuming.

Suitable apps

Via Google search or GitHub you can find some apps (mostly Python scripts) to support the automated upload to OpenSea.io. The development is very dynamic and new ones are added daily. Examples are: NFTs-Upload-to-OpenSea  oder Bulk-uploader-NFT But beware, both examples don’t work right away, have many ‘issues‘ and/or links to foreign collections/accounts embedded.

No plug-and-play

As with everything, caution is advised here and one should neither rely on nor expect these to be apps that work straight out of the box.

First of all, an appropriate development environment must also be installed in most cases, e.g. JDK or Python in the correct, appropriate version. Here, too, there are different ways, which of course depend on the operating system. Python, for example, can be installed on the Mac in various ways, for example via Anaconda or Miniconda (?) or Homebrew.

Then there are other modules like Selenium and a ‘remotely controllable’ browser version, often Chromedriver – also in the correct version matching the Chrome installation.

If this is done, run pip install -r requirements.txt preferably in an virtual environment

If the remote-controlled Chrome (chromedriver) is to use Chrome extensions, these must also be handled separately because Chromedriver cannot access the normal user space. Of course, Windows, MacOS and Linux have to be considered differently.

With security

A big problem is that you usually have to make access to your wallet available to these scripts. Often there are also links to (foreign) collections in the program code, often not with the intention of stealing access data but as an “example”.

Caution

Therefore, the urgent warning: do not trust any programme code that you do not understand or have not read. How easy it is to hide a link in the program lines that gives away all your confidential data and thus access to your wallet.

Minimise risk, but how?

OpenSea.io offers the possibility to delegate the management of collections by inviting collaborators. Now you could come up with the idea of creating an extra account to minimise the risk of delegating only this collection to a specially created account on OpenSea. This new account only has access to this one collection and thus the risk would be limited. The idea is good, but unfortunately it does not work in practice. If you upload NFTs under this new account, they can only be ‘minted’ from this account and listed in sales or auctions. There may be use cases where this is sufficient, but generally it is not very practical.

Another option is to use only the browser’s pre-tax function, still performing the login and any necessary entries or confirmations manually. This works quite well for a manageable number of works to be uploaded, say for one to 200. One small difficulty here is that in most cases Chrome does not remember the user settings when the script is terminated. This can easily be changed by creating a “User Space” directory and passing it: ##chromeoptions opt = Options() opt.add_argument(“user-data-dir=PATH_TO_USER_DIR”) You can easily check this with chrome://version/.

In order to use Chrome extensions, they must first be exported, as Chromedriver usually has no access to them due to security settings. chrome://extensions/ “Pack extension”.

It is then passed to Chromedriver with opt.add_extension(EXTENSION_PATH)