All Projects → maximedrn → opensea_automatic_uploader

maximedrn / opensea_automatic_uploader

Licence: GPL-3.0 license
(Bypass reCAPTCHAs) A Selenium Python bot to automatically and bulky upload and list your NFTs on OpenSea (all metadata integrated - Ethereum and Polygon supported); reCAPTCHA solver & bypasser included.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to opensea automatic uploader

opensea-scraper
Scrapes nft floor prices and additional information from opensea. Used for https://nftfloorprice.info
Stars: ✭ 129 (-37.07%)
Mutual labels:  nft, opensea, nfts
NFT-Dapp-Boilerplate
A highly scalable NFT and DEFI boilerplate with pre added web3 and different wallets with a focus on performance and best practices
Stars: ✭ 51 (-75.12%)
Mutual labels:  metamask, nft
simple-recaptcha-v3
🤖 This repository contains simple reCAPTCHA v3 integration for your Laravel application.
Stars: ✭ 25 (-87.8%)
Mutual labels:  recaptcha, captcha
Awesome NFTs
A curated collection about NFTs - by bt3gl
Stars: ✭ 42 (-79.51%)
Mutual labels:  nft, nfts
opensea-images-downloader
Script to download all the images from an opensea collection using the OpenSea API
Stars: ✭ 42 (-79.51%)
Mutual labels:  nft, opensea
recaptcha2
Easy verifier for google reCAPTCHA version 2 for Node.js and Express.js
Stars: ✭ 48 (-76.59%)
Mutual labels:  recaptcha, captcha
wp-recaptcha-integration
WordPress reCaptcha integration supporting Ninja Forms and Contact Form 7
Stars: ✭ 50 (-75.61%)
Mutual labels:  recaptcha, captcha
Captcha solver
Universal python API to captcha solving services
Stars: ✭ 152 (-25.85%)
Mutual labels:  recaptcha, captcha
enjin-cpp-sdk
Enjin Platform SDK for C++.
Stars: ✭ 15 (-92.68%)
Mutual labels:  nft, nfts
CapMonsterCloud
a C# wrapper for CapMonster Cloud API
Stars: ✭ 17 (-91.71%)
Mutual labels:  recaptcha, captcha
Server-Captcha
Protect Your Server From Automated Bots With Captcha Now !
Stars: ✭ 18 (-91.22%)
Mutual labels:  recaptcha, captcha
opensea
python wrapper for opensea api
Stars: ✭ 38 (-81.46%)
Mutual labels:  nft, opensea
dcat-auth-captcha
Sliding captcha for dcat-admin auth / dcat-admin登陆 滑动验证插件 多平台支持
Stars: ✭ 38 (-81.46%)
Mutual labels:  recaptcha, captcha
fnd-docs
Foundation developer docs
Stars: ✭ 33 (-83.9%)
Mutual labels:  nft, nfts
gas-reporting
Reference documentation on every gas price API and all the different formats
Stars: ✭ 85 (-58.54%)
Mutual labels:  metamask, nft
RARBG-scraper
With Selenium headless browsing and CAPTCHA solving
Stars: ✭ 38 (-81.46%)
Mutual labels:  captcha, selenium
nftool
A suite of tools for NFT generative art.
Stars: ✭ 145 (-29.27%)
Mutual labels:  nft, opensea
Recaptcha Module
🤖 Simple and easy Google reCAPTCHA integration with Nuxt.js
Stars: ✭ 143 (-30.24%)
Mutual labels:  recaptcha, captcha
Recaptcha
ReCaptcha helpers for ruby apps
Stars: ✭ 1,819 (+787.32%)
Mutual labels:  recaptcha, captcha
nft-collection-generator
Generates images and metadata for a collection of NFTs.
Stars: ✭ 77 (-62.44%)
Mutual labels:  nft, nfts

Automatically and massively upload and list your non-fungible tokens on the OpenSea marketplace using Python Selenium.

A Selenium Python bot to automatically and bulky upload and list your NFTs on OpenSea
All metadata integrated - Ethereum and Polygon supported - reCAPTCHA solver services included.

Version 1.7.18 (June 09, 2022).

If you like 💚 my work and this tool:

  • Do not hesitate to fork 🍴 this repository.
  • Do not hesitate to add a star to this repository.

Need help or have a specific request?
Look at my offers on Fiverr .
Contact me via Telegram or email me at [email protected].


New: Bypass reCAPTCHAs using this OpenSea exploit: reCAPTCHA Bypasser.

Watch the videos (1 - 2) to see how fast the upload is with this exploit!
Estimates: 400 NFTs per hour, or an average of 10,000 NFTs in one day with one process.

Demonstration.using.the.reCAPTCHA.Bypasser.mp4

Table of contents

Introduction

[TUTORIAL] CREATE & UPLOAD NFTs to OpenSea - Bypass reCAPTCHAs

Please read the README file before using this tool, opening an issue or a discussion, or contacting me.
You will certainly find a solution by reading 📖 or consulting the issues already present.

  • Want to open an issue?
    • Explain your problem in a few lines, accompanied by images 🖼️ or a video 🎬.
    • Provide an excerpt from your metadata file 🗒️.
    • Specify your operating system ⚙️ as well as the version of Python 🐍 used and that of the bot.
  • Make sure you have the latest version of the Python modules, browser and bot installed.
  • Read the pinned 📌 and opened issues, see the structure of the metadata files.

Useful links 🔗 and websites to consult before using this bot:

  • Sign up on OpenSea.
  • Sign up on MetaMask.
  • Sign up on Coinbase (affiliate link).
  • Sign up on 2Captcha (affiliate link).
    Paid service: $2.99 per 1000 reCAPTCHAs.

What does this bot do?

With this bot, you can choose to upload, list or even both your non-fungible tokens on the OpenSea marketplace.

You just have to create a metadata file following the requested structure, JSON, CSV and XLSX (Excel file) formats are available.
This file will include every detail for each NFT.
Then, you just have to launch the bot and select the action you want to perform, as well as the metadata file created.
Finally, the bot will automate the tedious task of uploading or listing NFTs, one by one by hand, for several days.

  • Absolutely all upload details are supported, you can add as many properties as you want.
  • All file formats offered by OpenSea are compatible, including images, videos or even 3D models.
  • Ethereum and Polygon blockchains are supported, and the switch between these two blockchains is also supported.
  • In case of failure during an upload, a listing or when you only want to upload your NFTs on OpenSea, a file is generated with details already filled in or to be filled in.

You can see an example of collections transferred with this bot:

Frequently asked questions

Should I be worried about using my wallet credentials?

According to Rule #1 of the MetaMask "Safety Tips", it is requested to "Never share your 12-word Secret Recovery Phrase (SRP) or private keys". However, your wallet credentials are only used for the purpose of connecting to your wallet extension. The bot follows the procedure for the first connection to a wallet on a new browser (importing from a recovery phrase followed by creating a new password). Thus, none of this information is recovered, everything happens on your side. Moreover, you are free to choose whether or not to save your credentials in text files in the assets/ folder.

Which reCAPTCHA solver is the best?

It all depends on your choices and the equipment you have.

  • If you have a powerful computer (running Windows or Linux) and you don't want to pay for a paid service, you should choose option number 2: the reCAPTCHA solver with Yolov5x6.
  • If you don't have a powerful computer but don't mind paying for a service, you have 2 solutions.
    • The first one is option number 3 (2Captcha) which is convenient if you want to upload a small collection at an affordable price.
    • The second option is option number 4 (reCAPTCHA Bypasser) which, in addition to speeding up the upload speed, allows you to upload as many collections as you want.
  • If your computer is not powerful enough and you don't want to pay, choose the first option: manual resolution.
reCAPTCHA bypasser 2Captcha solver Yolov5x6 solver Manual resolution
Solving speed Instant / 0 second from 20 to 30 seconds from 20 to 30 seconds from 10 to 60 seconds
Upload time ~ 6,5 seconds From 30 to 40 seconds From 30 to 40 seconds More than 1 minute
Number of NFTs per hour Up to 400 NFTs From 100 to 110 NFTs From 100 to 110 NFTs From 50 to 60 NFTs
Price From $3 to $5 per month 29.90$ per 10,000 NFTs Free Free
Automatic
Works on any computer
Unlimited

Is there an easy way to get the URLs of already uploaded NFTs?

A tool to retrieve URLs from NFTs is available. You can learn more about this tool here.

How to find missing and duplicates NFTs in my collection?

A tool to extract NFTs to get the missing and duplicates is available. You can learn more about this tool here. Then if you want to remove duplicates, you can use this tool here.

Is there a quick way to create my metadata file?

A tool to generate a complete metadata file from a single file is available. You can learn more about this tool here.

I'm coming from the Hashlips Art Engine tool, how to make my files compatible?

You have just generated your images and associated metadata but notice that these files are not compatible with this tool. Well, don't worry! Two tools will allow you to transform these files into one complete file compatible with this tool.

  • The File Compatibilizer and Converter will transform your files into a single compatible file.
  • However, some essential information is missing from this file. For example, if you want to add the price, the duration of the sale or the path to the generated images, videos or 3D objects, you will need the Generic File Maker.

Watch this video on YouTube, it explains step by step the process to convert and fill your metadata file.

Instructions

➜ In addition, watch this video on YouTube: How to install and setup the tool?

Installation of Python

  • Download and install Python (version 3.9.11 recommended) according to your operating system.

    • Make sure you add Python in your path by checking the checkbox when you run the installation.
  • Check that your version of Python is correct by typing one of these commands in a command prompt:

    • python --version
      
    • python3 --version
      
    • py --version
      
  • If pip is not installed by default with Python, install pip to be able to have needed Python modules.

  • Verify that pip is correctly installed by typing one of thess commands in a command prompt:

    • pip --version
      
    • pip3 --version
      

Installation and configuration of the bot

  • Download this repository or clone it by typing this command in your command prompt (it requires Git):

    git clone https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale.git
    
  • Extract the repository folder from the ZIP file, you should have a folder named opensea-automatic-bulk-upload-and-sale-master/.

  • Open a command prompt in the repository folder and type one of these commands (may require sudo on MacOS and Linux and administrator privileges for Windows):

    • pip install -r requirements.txt
      
    • pip3 install -r requirements.txt
      
    • python -m pip install -r requirements.txt
      
    • python3 -m pip install -r requirements.txt
      
    • py -m pip install -r requirements.txt
      
  • Download and install Google Chrome and/or Mozilla Firefox.

  • Create your metadata file containing all details of each NFT. It can be a JSON, CSV or XLSX file. You can save it in the data/ folder.
    What structure should my metadata file have?

Configuration of the reCAPTCHA solver using Yolov5x6

Yolov5x6 and RealESRGAN, ignore this if you use the 2Captcha solver, the reCAPTCHA bypasser or the manual solution.
Only available for Windows and Linux users.

  • You will need a one of these graphics card (GPU):

    • GTX 1080.
    • RTX 2060, RTX 2070, RTX 2080.
    • RTX 2050, RTX 3060, RTX 3070, RTX 3080, RTX 3090.
    • Any Ti version of these graphics cards.
  • Open a command prompt and type this command to check your CUDA version (it must be 11.6 or higher):

    nvidia-smi
    
  • If your CUDA version is earlier than 11.3, try to update it at the NVIDIA website.

  • Then type one of these commands to install PyTorch (may require sudo on Linux and administrator privileges for Windows):

    • pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio===0.11.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
      
    • pip3 install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio===0.11.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
      

    Or select one of the commands here depending on your computer.
    Previous versions of PyTorch with older CUDA version: https://pytorch.org/get-started/previous-versions/

  • Install the required modules for the reCAPTCHA solver typing one of these commands (may require sudo on Linux and administrator privileges for Windows):

    • pip install -r requirements_recaptcha.txt
      
    • pip3 install -r requirements_recaptcha.txt
      
    • python -m pip install -r requirements_recaptcha.txt
      
    • python3 -m pip install -r requirements_recaptcha.txt
      
    • py -m pip install -r requirements_recaptcha.txt
      

How to run the bot?

  • Open a command prompt in the opensea-automatic-bulk-upload-and-sale-master/ folder path.

  • Type one of these commands to run the bot:

    • python main.py
      
    • python3 main.py
      
  • You should see this appear:

    + Created by Maxime Dréan.
    + Copyright © 2022 Maxime Dréan. All rights reserved.
    + Any distribution, modification or commercial use is strictly prohibited.
    
    Extension tools available here: https://maximedrn.gumroad.com/
    Tutorials on YouTube: https://www.youtube.com/channel/UCoqpR1OLbswIyQVatKBoGxA
    
    ! Choose a wallet:
    1 - MetaMask
    2 - Coinbase Wallet
    # Enter the number of the wallet: 1 or 2.
    Wallet: 
    
    # Enter the password of or a new password for your wallet.
    What is your wallet password?
    # Enter "y" or "n" depending on whether you want to save this detail or not.
    Do you want to save your password in a text file? (y/n)
    + Saved.
    ! Not saved.
    
    # Enter the recovery phrase of your wallet.
    What is your wallet recovery phrase?
    # Enter "y" or "n" depending on whether you want to save this detail or not.
    Do you want to save your recovery phrase in a text file? (y/n)
    + Saved.
    ! Not saved.
    
    # Enter the name of your account if you want to change your account on your wallet.
    What is your account number? (Press [ENTER] to ignore this step)
    # Enter "y" or "n" depending on whether you want to save this detail or not.
    Do you want to save your private key in a text file? (y/n)
    + Saved.
    ! Not saved.
    
    ! Choose an action to perform:
    1 - Upload and sell NFTs (18 details/NFT).
    2 - Upload NFTs (12 details/NFT).
    3 - Sell NFTs (9 details/NFT including 3 autogenerated).
    4 - Delete NFTs (1 detail/NFT).
    # Enter the number of the action: 1, 2, 3 or 4.
    Action number:
    
    ! Choose a reCAPTCHA solver:
    1 - Manual solver.
    2 - Automatic solver using Yolov5.
    3 - Automatic solver using 2Captcha.
    4 - No reCAPTCHA (OpenSea exploit - do not report!).
    # Enter the number of the solver you want to use: 1, 2, 3 or 4.
    Action number:
    
    ! Choose a browser:
    1 - ChromeDriver (Google Chrome) - No headless mode.
        Must used in foreground, you see what's happening.
    2 - GeckoDriver (Mozilla Firefox)- Headless mode.
        Can be used in background while doing something else.
    # Enter the number of browser you want to use: 1 or 2.
    Browser:
    
    ! Choose your file:
    0 - Browse a file on PC.
    1 - data\json_structure_sale_only.json
    2 - data\json_structure_upload_and_sale.json
    3 - data\json_structure_upload_only.json
    6 - data\csv_structure_sale_only.csv
    7 - data\csv_structure_upload_and_sale.csv
    8 - data\csv_structure_upload_only.csv
    10 - data\xlsx_structure_sale_only.xlsx
    11 - data\xlsx_structure_upload_and_sale.xlsx
    12 - data\xlsx_structure_upload_only.xlsx
    # Enter the number of the metadata file you want to use - 0 if your file is not in the "data/" folder.
    File number:
  • Then it will download a webdriver according to your choice and your browser version.

  • If you selected the automatic reCAPTCHA solver using Yolov5, 2 files will be downloaded:

    • realesrgan/RealESRGAN_x4plus.pth: 63.9 MB. Available here if the download fails.
    • yolov5/yolov5x6.pt: 269 MB. Available here if the download fails.

Metadata files structure

➜ In addition, watch this video on YouTube: How to create my metadata file?
➜ Easily generate your metadata file using this tool.

Important things to know

  • If you do not want to add details to the values not required (all details are required), leave:

    • a blank cell for XLSX files (Excel):

      File Path NFT Name Description
      C:/Users/Admin/Desktop/NFT/nft_0001.png NFT #1
    • a white space with two semicolons for CSV files:

      file_path;; nft_name;; description;;
      C:/Users/Admin/Desktop/NFT/nft_0001.png;; NFT #1;; ;;
      
    • an empty string for JSON files:

      "file_path": "C:/Users/Admin/Desktop/NFT/nft_0001.png",
      "nft_name": "NFT #1",
      "description": "",
  • The file path should not contain a unique "\". It can be a "/" or a "\\", as you can see for the JSON file (it applies to all file formats):

    // You can use this format for your path:
    "file_path": "C:/Users/Admin/Desktop/MyNFTs/nft_0001.png",
    // or this one:
    "file_path": "C:\\Users\\Admin\\Desktop\\MyNFTs\\nft_0001.png",
    // but not this one (you can see that "\" is highlighted in red):
    "file_path": "C:\Users\Admin\Desktop\MyNFTs\nft_0001.png",
  • Required values *

  • Mandatory value in certain specified cases are in brackets

"Upload and sale" metadata file

When you want to sell your NFTs, Opensea requires various details according to their Blockchain or supply number.
Note: The maximum duration of sale should be at most 6 months.

Make sure to deposit Ethereum (ETH/WETH) or Polygon (MATIC) on your wallet before proceeding to the sale. Otherwise the bot will cancel the sale. Opensea needs an Ethereum wallet with more than 0.05 ETH or a Polygon wallet with a deposit of any amount. For Ethereum, you have to make a first listing manually before using this bot.

Details Data Types Literal examples JSON examples CSV examples XLSX examples
File Path * (The preview is only for files that are not images) String or List "file_path": "C:/Users/Admin/Desktop/NFT/nft_0001.png",
"file_path": ["C:/Users/Admin/Desktop/NFT/nft_0001.mp4", "C:/Users/Admin/Desktop/NFT/nft_0001-preview.png"],
C:/Users/Admin/Desktop/NFT/nft_0001.png;;
["C:/Users/Admin/Desktop/NFT/nft_0001.mp4", "C:/Users/Admin/Desktop/NFT/nft_0001-preview.png"];;
C:/Users/Admin/Desktop/NFT/nft_0001.png
["C:/Users/Admin/Desktop/NFT/nft_0001.mp4", "C:/Users/Admin/Desktop/NFT/nft_0001-preview.png"];;
NFT Name * String "nft_name": "NFT #1", NFT #1;; NFT #1
External Link String "external_link": "https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale",
"external_link": "",
https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale;; https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale
Description String "description": "This is my first NFT.",
"description": "",
This is my first NFT.;; This is my first NFT.
Collection String "collection": "My NFTs",
"collection": "my-nfts",
"collection": "",
My NFTs;;
my-nfts;;
My NFTs
my-nfts
Properties List[[String, String], ...]
List[String, String]
["type", "name"]
[["type", "name"], ["type", "name"]]
"properties": [{ "type": "Dog", "name": "Male" }, { "type": "Cat", "name": "Female" }],
"properties": [{ "type": "Dog", "name": "Male" }],
"properties": "",
[["Dog", "Male"], ["Cat", "Female"]];;
[["Dog", "Male"]];;
["Dog", "Male"];;
[["Dog", "Male"], ["Cat", "Female"]]
[["Dog", "Male"]]
["Dog", "Male"]
Levels List[[String, Integer, Integer], ...]
List[String, Integer, Integer]
["name", value_from, value_to]
[["name", value_from, value_to], ["name", value_from, value_to]]
"levels": [{ "name": "Speed", "from": 2, "to": 5 }, { "name": "Width", "from": 1, "to": 10 }],
"levels": [{ "name": "Speed", "from": 2, "to": 5 }],
"levels": "",
[["Speed", 2, 5], ["Width", 1, 10]];;
[["Speed", 2, 5]];;
["Speed", 2, 5];;
[["Speed", 2, 5], ["Width", 1, 10]]
[["Speed", 2, 5]]
["Speed", 2, 5]
Stats List[[String, Integer, Integer], ...]
List[String, Integer, Integer]
["name", value_from, value_to]
[["name", value_from, value_to], ["name", value_from, value_to]]
"stats": [{ "name": "Strenght", "from": 10, "to": 100 }, { "name": "Age", "from": 1, "to": 99 }],
"stats": [{ "name": "Strenght", "from": 10, "to": 100 }],
"stats": "",
[["Strenght", 10, 100], ["Age", 1, 99]];;
[["Strenght", 10, 100]];;
["Strenght", 10, 100];;
[["Strenght", 10, 100], ["Age", 1, 99]]
[["Strenght", 10, 100]]
["Strenght", 10, 100]
Unlockable Content List[Boolean, String]
List[Boolean]
Boolean
[True, "unlockable_content"]
[False]
False
"unlockable_content": [true, "Thank you for purchasing my NFT!"],
"unlockable_content": [false],
"unlockable_content": false,
"unlockable_content": "",
[True, "Thank you for purchasing my NFT!"];;
[False];;
False;;
[True, "Thank you for purchasing my NFT!"]
[False]
False
Explicit And Sensitive Content Boolean "explicit_and_sensitive_content": true,
"explicit_and_sensitive_content": false,
"explicit_and_sensitive_content": "",
True;;
False;;
True
False
Supply Integer "supply": 1,
"supply" : "",
1;; 1
Blockchain String "blockchain": "Polygon",
"blockchain" : "",
Polygon;; Polygon
Sale Type (only for Ethereum Blockchain and 1 supply) String "sale_type": "Timed Auction",
"sale_type": "",
Timed Auction;; Timed Auction
Price * Float or Integer "price": 5,
"price": 0.25,
5;;
0.25;;
5
0.25
Method (only for "Timed Auction") List[String, Float] ["method", price]
["method, ""]
"method": ["Sell with declining price", 0.002],
"method": ["Sell to highest bidder", 0.05],
"method": ["Sell to highest bidder", ""],
"method": "",
["Sell with declining price", 0.002];;
["Sell to highest bidder", 0.05];;
["Sell to highest bidder", ""];;
["Sell with declining price", 0.002]
["Sell to highest bidder", 0.05]
["Sell to highest bidder", ""]
Duration ("DD-MM-YYYY HH:MM") List[String, String]
List[String]
String
["from_date", "to_date"]
["days/weeks/months"]
"days/weeks/months"
"duration": ["01-01-2022 14:00", "01-04-2022 15:00"],
"duration": ["1 week"],
"duration": "1 week",
"duration": "",
["01-01-2022 14:00", "01-04-2022 15:00"];;
["1 week"];;
1 week;;
["01-01-2022 14:00", "01-04-2022 15:00"]
["1 week"]
1 week
Specific Buyer List[Boolean, String]
[Boolean]
Boolean
[True, "wallet"]
[False]
False
"specific_buyer": [true, "0xDD135d5be0a23f6daAAE7D2d0580828c9e09402E"],
"specific_buyer": [false],
"specific_buyer": false,
"specific_buyer": "",
[True, "0xDD135d5be0a23f6daAAE7D2d0580828c9e09402E"];;
[False];;
False;;
[True, "0xDD135d5be0a23f6daAAE7D2d0580828c9e09402E"]
[False]
False
Quantity * (only for 1+ supplies) Integer "quantity": 4
"quantity": ""
4 4

And it gives you something like this: JSON, CSV, XLSX (must be downloaded to view it).

"Upload only" metadata file

Display the table.
Details Data Types Literal examples JSON examples CSV examples XLSX examples
File Path * (The preview is only for files that are not images) String or List "file_path": "C:/Users/Admin/Desktop/NFT/nft_0001.png",
"file_path": ["C:/Users/Admin/Desktop/NFT/nft_0001.mp4", "C:/Users/Admin/Desktop/NFT/nft_0001-preview.png"],
C:/Users/Admin/Desktop/NFT/nft_0001.png;;
["C:/Users/Admin/Desktop/NFT/nft_0001.mp4", "C:/Users/Admin/Desktop/NFT/nft_0001-preview.png"];;
C:/Users/Admin/Desktop/NFT/nft_0001.png
["C:/Users/Admin/Desktop/NFT/nft_0001.mp4", "C:/Users/Admin/Desktop/NFT/nft_0001-preview.png"];;
NFT Name * String "nft_name": "NFT #1", NFT #1;; NFT #1
External Link String "external_link": "https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale",
"external_link": "",
https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale;; https://github.com/maximedrn/opensea-automatic-bulk-upload-and-sale
Description String "description": "This is my first NFT.",
"description": "",
This is my first NFT.;; This is my first NFT.
Collection String "collection": "My NFTs",
"collection": "my-nfts",
"collection": "",
My NFTs;;
my-nfts;;
My NFTs
my-nfts
Properties List[[String, String], ...]
List[String, String]
["type", "name"]
[["type", "name"], ["type", "name"]]
"properties": [{ "type": "Dog", "name": "Male" }, { "type": "Cat", "name": "Female" }],
"properties": [{ "type": "Dog", "name": "Male" }],
"properties": "",
[["Dog", "Male"], ["Cat", "Female"]];;
[["Dog", "Male"]];;
["Dog", "Male"];;
[["Dog", "Male"], ["Cat", "Female"]]
[["Dog", "Male"]]
["Dog", "Male"]
Levels List[[String, Integer, Integer], ...]
List[String, Integer, Integer]
["name", value_from, value_to]
[["name", value_from, value_to], ["name", value_from, value_to]]
"levels": [{ "name": "Speed", "from": 2, "to": 5 }, { "name": "Width", "from": 1, "to": 10 }],
"levels": [{ "name": "Speed", "from": 2, "to": 5 }],
"levels": "",
[["Speed", 2, 5], ["Width", 1, 10]];;
[["Speed", 2, 5]];;
["Speed", 2, 5];;
[["Speed", 2, 5], ["Width", 1, 10]]
[["Speed", 2, 5]]
["Speed", 2, 5]
Stats List[[String, Integer, Integer], ...]
List[String, Integer, Integer]
["name", value_from, value_to]
[["name", value_from, value_to], ["name", value_from, value_to]]
"stats": [{ "name": "Strenght", "from": 10, "to": 100 }, { "name": "Age", "from": 1, "to": 99 }],
"stats": [{ "name": "Strenght", "from": 10, "to": 100 }],
"stats": "",
[["Strenght", 10, 100], ["Age", 1, 99]];;
[["Strenght", 10, 100]];;
["Strenght", 10, 100];;
[["Strenght", 10, 100], ["Age", 1, 99]]
[["Strenght", 10, 100]]
["Strenght", 10, 100]
Unlockable Content List[Boolean, String]
List[Boolean]
Boolean
[True, "unlockable_content"]
[False]
False
"unlockable_content": [true, "Thank you for purchasing my NFT!"],
"unlockable_content": [false],
"unlockable_content": false,
"unlockable_content": "",
[True, "Thank you for purchasing my NFT!"];;
[False];;
False;;
[True, "Thank you for purchasing my NFT!"]
[False]
False
Explicit And Sensitive Content Boolean "explicit_and_sensitive_content": true,
"explicit_and_sensitive_content": false,
"explicit_and_sensitive_content": "",
True;;
False;;
True
False
Supply * Integer "supply": 1, 1;; 1
Blockchain * String "blockchain": "Polygon" Polygon Polygon

And it gives you something like this: JSON, CSV, XLSX (must be downloaded to view it).

"Sale only" metadata file

If you have already uploaded your NFTs with this bot, a file has been generated containing the URL, the Blockchain and the supply number of each NFT. You have to complete it with sale values.

When you want to sell your NFTs, Opensea requires various details according to their Blockchain or supply number.
Note: The maximum duration of sale should be at most 6 months.

Make sure to deposit Ethereum (ETH/WETH) or Polygon (MATIC) on your wallet before proceeding to the sale. Otherwise the bot will cancel the sale. Opensea needs an Ethereum wallet with more than 0.05 ETH or a Polygon wallet with a deposit of any amount. For Ethereum, you have to make a first listing manually before using this bot.

Display the table.
Details Data Types Literal examples JSON examples CSV examples XLSX examples
NFT URL * String "nft_url": "https://opensea.io/assets/matic/...", https://opensea.io/...;; https://opensea.io/assets/matic/...
Supply * Integer "supply": 1, 1;; 1
Blockchain * String "blockchain": "Polygon", Polygon;; Polygon
Sale Type (only for Ethereum Blockchain and 1 supply) String "sale_type": "Timed Auction",
"sale_type": "",
Timed Auction;; Timed Auction
Price * Float or Integer "price": 5,
"price: 0.25,
5;;
0.25;;
5
0.25
Method (only for "Timed Auction") List[String, Float] ["method", price]
["method, ""]
"method": ["Sell with declining price", 0.002],
"method": ["Sell to highest bidder", 0.05],
"method": ["Sell to highest bidder", ""],
"method": "",
["Sell with declining price", 0.002];;
["Sell to highest bidder", 0.05];;
["Sell to highest bidder", ""];;
["Sell with declining price", 0.002]
["Sell to highest bidder", 0.05]
["Sell to highest bidder", ""]
Duration ("DD-MM-YYYY HH:MM") List[String, String]
List[String]
String
["from_date", "to_date"]
["days/weeks/months"]
"days/weeks/months"
"duration": ["01-01-2022 14:00", "01-04-2022 15:00"],
"duration": ["1 week"],
"duration": "1 week",
"duration": "",
["01-01-2022 14:00", "01-04-2022 15:00"];;
["1 week"];;
1 week;;
["01-01-2022 14:00", "01-04-2022 15:00"]
["1 week"]
1 week
Specific Buyer List[Boolean, String]
[Boolean]
Boolean
[True, "wallet"]
[False]
False
"specific_buyer": [true, "0xDD135d5be0a23f6daAAE7D2d0580828c9e09402E"]
"specific_buyer": [false]
"specific_buyer": false,
specific_buyer": "",
[True, "0xDD135d5be0a23f6daAAE7D2d0580828c9e09402E"];;
[False];;
False;;
[True, "0xDD135d5be0a23f6daAAE7D2d0580828c9e09402E"]
[False]
False
Quantity * (only for 1+ supplies) Integer "quantity": 4
"quantity": ""
4 4

And it gives you something like this: JSON, CSV, XLSX (must be downloaded to view it).

Explanation of the different details for the listing part

Ethereum Polygon
Supply number equal to 1 Supply number higher than 1 Supply number equal to 1 Supply number higher than 1
Fixed Price Timed Auction
Sell to highest bidder Sell with declining price
Price (ETH) Duration (from a date to an other date or 1 day, 3 days, 1 week, 1 month) Reserve for a specific buyer Price (ETH) Duration (from a date to an other date or 1 day, 3 days, 1 week) (Optional) Reserved Price (WETH) greater than 1 WETH and greater than the Starting Price. Reserve for a specific buyer Starting Price (ETH) Duration (from a date to an other date or 1 day, 3 days, 1 week) Ending Price (ETH) less than the Starting Price. Reserve for a specific buyer Quantity Price (ETH) Duration (from a date to an other date or 1 day, 3 days, 1 week, 1 month) Reserve for a specific buyer Price (ETH) Duration (from a date to an other date or 1 day, 3 days, 1 week, 1 month) Reserve for a specific buyer Quantity Price (ETH) Duration (from a date to an other date or 1 day, 3 days, 1 week, 1 month) Reserve for a specific buyer

Useful tools to have for this bot

All these tools are not free and are only add-ons. You can still use the bot without these tools.
The complete list of tools is available on Gumroad.
If you are not able to pay by Paypal or credit card on Gumroad, contact me on Telegram. You will be able to make a payment by cryptocurrency.

Collection Scraper

Collection Scraper

With this OpenSea collection scraper, you can retrieve the entire URLs of the NFTs of a collection automatically.
It facilitates the listing of NFTs already uploaded to OpenSea before, without the help of the latter.

The bot takes care of sorting among the NFTs by creating different files compatible with the "Sale only" part of the bot.
Thus a "full" file containing all NFTs, a "unique" file containing each NFT individually based on their names, a "duplicate" file containing all duplicated NFTs of the collection and a "missing" file containing all missing NFTs will be created, and these in all formats compatible with the bot (JSON, CSV and XLSX).
Purchase this tool - Collection Scraper.

View this section.

Installation

  • Download and install Node.js LTS version.

  • Extract the repository folder from the ZIP file, you should have a folder named opensea-collection-scraper/.

  • Open a command prompt in the repository folder and type one of these commands (may require sudo on MacOS and Linux and administrator privileges for Windows):

    • pip install -r requirements.txt
      
    • pip3 install -r requirements.txt
      
    • python -m pip install -r requirements.txt
      
    • python3 -m pip install -r requirements.txt
      
    • py -m pip install -r requirements.txt
      
  • Still in your command prompt, type this command (may require sudo on MacOS and Linux and administrator privileges for Windows - a node_modules/ folder should be created):

    npm install
    

Run the bot

  • Open a command prompt in the opensea-collection-scraper/ folder path and type one of these commands to run the bot:

    • python scraper.py
      
    • python3 scraper.py
      
  • Enter the number of items your collection should contain.

  • Enter the name of your collection, based on the collection URL: https://opensea.io/collection/crypto-parrot-nftscrypto-parrot-nfts.

  • JSON, CSV and XLSX files will be generated and stored in the data/ folder of the repository.

  • If you get this error Expecting value: line 1 column 1 (char 0), see the comment for this issue which may help you.

Changelog

  • Version 1.4.0 and 1.4.1:
    • Important fixes and improvements.
  • Version 1.3.0:
    • Major fixes.
    • The collection limit is 20,000 NFTs maximum.
    • The bot now scrapes twice.
  • Version 1.2.0:
    • Correction of missing name in CSV files.
    • Correction of the creation of missing files.
    • Improved functioning of the duplicate detector.
  • Version 1.1.0:
    • Adding the creation of a file containing duplicates.
    • Added the creation of a file containing the missing.
    • Added the name of the NFTs in the files for sale.
  • Version 1.0.0:
    • Initial commit.

Deletion

Deletion

With this Deletion tool, you can massively remove NFTs from your account. All you have to do is create a file containing the URL of the NFTs you want to delete, then launch the main bot and select the fourth option. It is even easier if you have the Collection Scraper tool, which automatically creates a file compatible with this tool.

Purchase this tool - Deletion.

View this section.

Installation and run the bot

  • Make sure you have version 1.7.5 or higher.
  • Extract the file from the ZIP file, you should have a file named delete.py.
  • Navigate to the "Upload and Sale" bot repository, and place this file in this directory: opensea-automatic-bulk-upload-and-sale/app/services/processes/delete.py.
  • Start the main bot and at action select the 4th option.

File structure

This works exactly like a "Sale Only" file where only the first value will be taken into account (nft_url).

Details Data Types Literal examples JSON examples CSV examples XLSX examples
NFT URL * String "nft_url": "https://opensea.io/assets/matic/..." https://opensea.io/... https://opensea.io/assets/matic/...

Changelog

  • Version 1.1.0:
    • Major fixes and improvements.
  • Version 1.0.0:
    • Initial commit.

Generic File Maker

Generic File Maker

With this OpenSea collection scraper, you can generate a whole file from a generic file or modify a file by replacing massively some values by others.
You just have to fill a simple generic file with 21 details (18 for NFTs and 3 for formatting and file parameters) and run the script.
Your file will be generated with common values for all your NFTs.
It faciliates the creation of your metadata file.
Purchase this tool - Generic File Maker.

View this section.

Installation

  • Extract the repository folder from the ZIP file, you should have a folder named opensea-generic-file/.

  • Open a command prompt in the repository folder and type one of these commands (may require sudo on MacOS and Linux and administrator privileges for Windows):

    • pip install -r requirements.txt
      
    • pip3 install -r requirements.txt
      
    • python -m pip install -r requirements.txt
      
    • python3 -m pip install -r requirements.txt
      
    • py -m pip install -r requirements.txt
      

Run the bot

  • Open a command prompt in the opensea-generic-file/ folder path and type one of these commands to run the bot:

    • python generic.py
      
    • python3 generic.py
      
  • You should see this appear:

    + Created by Maxime Dréan.
    + Copyright © 2022 Maxime Dréan. All rights reserved.
    + Any distribution, modification or commercial use is strictly prohibited.
    
    ! Choose an action to perform:
    1 - Duplicate from existing file.
    2 - Generate a new file.
    # Enter the number of the action: 1 (if you already have a metadata file) or 2 (if you want to create a new file).
    Action number:
    
    ! Convert to/file type:
    1 - Upload & sale (18 details).
    2 - Upload (12 details).
    3 - Sale (9 details).
    # Enter the number of the file structure.
    Action number:
    
    ! Choose your generic file:
    0 - Browse a file on PC.
    1 - generic\generic-file-blank.json
    2 - generic-file-example.json
    # Enter the number of the generic file you want to use.
    File number:
    
    # This part appears if you choose "Duplicate from an existing file".
    ! Choose your data file:
    0 - Browse a file on PC.
    1 - data/_metadata.json
    # Enter the number of the metadata file you want to use - 0 if your file is not in the "data/" folder.
    File number:
    
    # Enter the starting number for the increment.
    Start incrementation from:
    
    Creating file. Done.
    + Saved in data/b2ef894e.json.

Changelog

  • Versions 1.3.0 to 1.3.2:
    • Fixed recursion error when "Sale" option is selected.
    • Fixed specific_buyer value always set to [true, ""].
  • Versions 1.2.0 to 1.2.2:
    • Important fixes and improvements.
    • Added a start value for incrementing.
  • Version 1.1.0:
    • Added support for preview file in the generic file.
    • Fixed the problem of unlockable content to false when set to true in the data file.
  • Version 1.0.0:
    • Initial commit.

How to complete the generic file?

  • In the details part of the generic file, you have to complete with the value you want to put in your metadata file.

  • What does the value "incrementation" mean?
    You may have different file names, URLs or descriptions for each of your NFTs, so these details will be different for each NFT.

    • number: it will use a numeric value for incrementing (1, 2, 3, 4, etc).
    • letter: it will use the alphabet for incrementing (A to Z, then AA to AZ, etc).

    This value (number or letter) will be added wherever you place {} in your detail.

  • What does the "format" value mean?
    This is the way "increment": "number", will work.

    • 0 : default value, numbers will be incremented in a basic way.
    • -1: it will add a specific number of digits depending on the number of NFTs (10000 NFTs ➜ 00001, 00002, etc).
    • Any strictly positive number: number of digits (3 digits ➜ 001, ... 100, etc).
  • Settings part:

    • overwrite: it will overwrite the entire contents of a metadata file.
    • overwrite_empty: it will overwrite the details of a metadata file only if they are as default value.
    • append: it will append the value of any list of dictionary details (properties, levels, stats).

Multiprocessing

Multiprocessing

With this Multiprocessing tool, you can upload and list your NFTs two to five times faster. It splits your file into several subfiles, then command prompts open and work like the main bot but at the same time.

Note: it requires a fairly powerful computer (a minimum of 6GB of RAM and a processor with a minimum of 2 cores).
If your computer has some mismatch with the main bot, do not buy this tool.

Purchase this tool - Multiprocessing.

View this section.

Installation

  • Make sure you have version 1.7.10 or higher.
  • Extract the 2 files from the ZIP file, you should have a file named multiprocessing.py and another named task.py.
  • Navigate to the "Upload and Sale" bot repository, and place these two files in the parent directory (opensea-automatic-upload-and-sale/).

Run the bot

  • Open a command prompt in the repository folder (same as the main bot) and type one of these commands to run the bot:

    • python multiprocessing.py
      
    • python3 multiprocess.py
      
  • Select your choices as in the main bot.

  • When two command prompts are open, you can close the multiprocessing.py tab.

  • Now the bot runs multiple instances and upload/list or both your NFTs.

Changelog

  • Version 1.1.0:
    • You can now choose the amount of processes you want to run simultaneously (between 1 and 5).
    • Remove the output on save that make the process slower.
  • Version 1.0.0:
    • Initial commit.

reCAPTCHA Bypasser

reCAPTCHA Bypasser Demonstration videos available: 1 - 2.

With this tool, you can upload your NFTs without reCAPTCHA on OpenSea. It uses an exploit that bypass the reCAPTCHA.
The upload speed is such that there would be no reCAPTCHA. Rediscover OpenSea before reCAPTCHAs!
Up to 400 NFTs per hour and much more with the Multiprocessing tool.
Purchase this tool - reCAPTCHA Bypasser.

View this section.

Installation and run the bot

  • Make sure you have version 1.7.3 or higher.
  • Extract the file from the ZIP file, you should have a file named no_captcha.py.
  • Place it in this directory: opensea-automatic-bulk-upload-and-sale/app/services/solvers/.
  • Start the main bot and at the reCAPTCHA selection select the 4th option.

File Compatibilizer and Converter

File Compatibilizer

With this file compatibilizer, you can convert a metadata file of one specific type into another (Upload into Upload and Sale, into Sale and vice versa). In addition, it organizes the details in a specific order to be compatible with the bot. You can convert a folder containing HashLips JSON files into a single compatible file.
Purchase this tool - File Compatibilizer.

View this section.

Installation

  • Extract the repository folder from the ZIP file, you should have a folder named opensea-file-compatibilizer/.

  • Open a command prompt in the repository folder and type one of these commands (may require sudo on MacOS and Linux and administrator privileges for Windows):

    • pip install -r requirements.txt
      
    • pip3 install -r requirements.txt
      
    • python -m pip install -r requirements.txt
      
    • python3 -m pip install -r requirements.txt
      
    • py -m pip install -r requirements.txt
      

Run the bot

  • Open a command prompt in the opensea-file-compatibilizer/ folder path and type one of these commands to run the bot:

    • python compatibilizer.py
      
    • python3 compatibilizer.py
      
  • You should see this appear:

    + Created by Maxime Dréan.
    + Copyright © 2022 Maxime Dréan. All rights reserved.
    + Any distribution, modification or commercial use is strictly prohibited.
    
    ! Convert from:
    1 - A file.
    2 - HashLips files.
    # Enter the number of the action: 1 (if you already have one compatible metadata file) or 2 (if you have Hashlips JSON metadata files).
    Action number:
    
    # If you choose the second action:
    # Enter the absolute path to the JSON files path (build/json).
    What is the folder path of the JSON files?
    
    ! Choose your file:
    0 - Browse a file on PC.
    # Enter the number of the data file you want to use.
    File number:
    
    # If you choose the second action:
    ! Convert to/file type:
    1 - Upload & sale (18 details).
    2 - Upload (12 details).
    3 - Sale (9 details).
    # Enter the number of the file structure.
    Action number:
    
    + Saved in data/{file_type}_b2ef894e.json.

Changelog

  • Versions 1.1.0 and 1.1.0:
    • Added the Hashlips Art Engine files conversion.
    • It no longer reads the _metadata.json file.
  • Version 1.0.0:
    • Initial commit.

Repository structure

Absolutely all files must be present for the bot to work properly. Some files are available by purchasing external tools, these allow to facilitate the task of uploading or listing on OpenSea or offer new features.

Display the repository structure.
opensea-automatic-upload-and-sale-master
├── .github  /* Can be removed. */
│   ╰── workflows  /* Can be removed. */
│       ├── codeql-analysis.yml  /* Can be removed. */
│       ╰── stale_issues.yml  /* Can be removed. */
├── app
│   ├── common
│   │   ├── __init__.py
│   │   ├── reader.py
│   │   ├── save.py
│   │   ╰── structure.py
│   ├── services
│   │   ├── processes
│   │   │   ├── __init__.py
│   │   │   ├── login.py
│   │   │   ├── delete.py  /* Available in the "Deletion" tool. */
│   │   │   ├── sale.py
│   │   │   ╰── upload.py
│   │   ├── solvers
│   │   │   ├── __init__.py
│   │   │   ├── no_captcha.py  /* Can be removed if you don't want to use the reCAPTCHA exploit. */
│   │   │   ├── recaptcha_callback.js  /* Can be removed if you don't want to use the 2Captcha solver. */
│   │   │   ├── recaptcha.py  /* Can be removed if you don't want to use the Yolov5x6 reCAPTCHA solver. */
│   │   │   ├── solver.py
│   │   │   ╰── two_captcha.py  /* Can be removed if you don't want to use the 2Captcha solver. */
│   │   ├── wallets
│   │   │   ├── __init__.py
│   │   │   ├── coinbase_wallet.py  /* Can be removed if you don't want to use Coinbase Wallet. */
│   │   │   ├── metamask.py  /* Can be removed if you don't want to use MetaMask. */
│   │   │   ╰── wallet.py
│   │   ├── __init__.py
│   │   ╰── webdriver.py
│   ├── utils
│   │   ├── __init__.py
│   │   ├── colors.py
│   │   ├── const.py
│   │   ├── func.py
│   │   ├── user.py
│   │   ╰── values.py
│   ╰── __init__.py
├── assets
│   ├── classes.json  /* Can be removed if you don't want to use the Yolov5x6 reCAPTCHA solver. */
│   ├── CoinbaseWallet.crx  /* Can be removed if you don't want to use the Coinbase Wallet extension. */
│   ├── MetaMask.crx  /* Can be removed if you don't want to use the MetaMask wallet with Google Chrome. */
│   ╰── MetaMask.xpi  /* Can be removed if you don't want to use the MetaMask wallet with Mozilla Firefox. */
├── data
│   ├── examples  /* Can be removed. */
│   │   ├── csv_structure_sale_only.csv
│   │   ├── csv_structure_upload_and_sale.csv
│   │   ├── csv_structure_upload_only.csv
│   │   ├── json_structure_sale_only.json
│   │   ├── json_structure_upload_and_sale.json
│   │   ├── json_structure_upload_only.json
│   │   ├── xlsx_structure_sale_only.xlsx
│   │   ├── xlsx_structure_upload_and_sale.xlsx
│   │   ╰── xlsx_structure_upload_only.xlsx
│   ├── csv_structure_sale_only.csv  /* Can be removed. */
│   ├── csv_structure_upload_and_sale.csv  /* Can be removed. */
│   ├── csv_structure_upload_only.csv  /* Can be removed. */
│   ├── json_structure_sale_only.json  /* Can be removed. */
│   ├── json_structure_upload_and_sale.json  /* Can be removed. */
│   ├── json_structure_upload_only.json  /* Can be removed. */
│   ├── xlsx_structure_sale_only.xlsx  /* Can be removed. */
│   ├── xlsx_structure_upload_and_sale.xlsx  /* Can be removed. */
│   ╰── xlsx_structure_upload_only.xlsx  /* Can be removed. */
├── realesrgan  /* Can be removed if you don't want to use the Yolov5x6 reCAPTCHA solver. */
│   ├── archs
│   │   ├── __init__.py
│   │   ├── discriminator_arch.py
│   │   ╰── srvgg_arch.py
│   ├── data
│   │   ├── __init__.py
│   │   ├── realesrgan_dataset.py
│   │   ╰── realesrgan_paired_dataset.py
│   ├── models
│   │   ├── __init__.py
│   │   ├── realesrgan_model.py
│   │   ╰── realesrnet_model.py
│   ├── __init__.py
│   ├── RealESRGAN_x4plus.pth
│   ╰── utils.py
├── yolov5  /* Can be removed if you don't want to use the Yolov5x6 reCAPTCHA solver. */
│   ├── models
│   │   ├── hub
│   │   │   ╰── yolov5x6.yaml
│   │   ├── __init__.py
│   │   ├── common.py
│   │   ├── experimental.py
│   │   ├── yolo.py
│   │   ╰── yolov5x.yaml
│   ├── utils
│   │   ├── __init__.py
│   │   ├── activations.py
│   │   ├── augmentations.py
│   │   ├── autoanchor.py
│   │   ├── datasets.py
│   │   ├── downloads.py
│   │   ├── general.py
│   │   ├── metrics.py
│   │   ├── plots.py
│   │   ╰── torch_utils.py
│   ├── export.py
│   ├── hubconf.py
│   ╰── yolov5x6.pt
├── .gitignore  /* Can be removed. */
├── LICENSE  /* Can be removed. */
├── README.md  /* Can be removed. */
├── requirements_recaptcha.txt  /* Can be removed after installing modules. */
├── requirements.txt  /* Can be removed after installing modules. */
├── main.py
├── multiprocess.py  /* Available in the "Multiprocess" tool. */
╰── task.py  /* Available in the "Multiprocess" tool. */

Changelog

Version 1.7.18:

  • Fixed switching and signing on Polygon.
  • Fixed bot stopping when it tried to check a 404 page error on a MetaMask popup.
  • Added the path of extensions when it raises an error when it can't find them.
Earlier versions.

Version 1.7.17:

  • Re-add the account change with the private key.
  • Metadata files no longer appear with the full path.

Versions 1.7.16 and 1.7.16.1:

  • Fixed the duration problem with the ["DD-MM-YYYY", "DD-MM-YYYY"] format.
  • Created a specific function for the 404 page error.
  • Fixed the problem of the switch to Polygon, the click on the button "Switch" is no longer necessary.

Version 1.7.15:

  • Added detection for the "This page is lost" and "Oops! Something went wrong" messages.

Version 1.7.14:

  • Fixed the problem when the Webdriver-Manager module could not download a webdriver and created an infinite loop because of a missing function return.
  • Added the display of an error when something goes wrong when starting the webdriver.
  • Added a file to order your file according to the name of your NFTs, this is useful when you want to complete your file with the Generic File Maker.

Version 1.7.13:

  • Fixed a problem when no collection is mentioned in the metadata file and a default collection is used on OpenSea. The upload was leading to an error.
  • Added a file to split your metadata file when you want to restart the process after stopping it.

Versions 1.7.12 and 1.7.12.1:

  • Fixed the listing problems. #300.

Version 1.7.11:

  • Fixed the "Sale Only" problem. #300.
  • Replaced the change of account with the private key by the name of the account.

Version 1.7.10:

  • Added line break support for description (add a \n to break the line).
  • Minor fixes.
  • Added support with the new version of the Multiprocessing tool.

Version 1.7.9:

  • Minor corrections for the contract signature on MetaMask.
  • Fixed an error that sometimes occurred when the collection is not mentioned.

Version 1.7.8:

  • Correction of the listing on Polygon when the option "Upload and Sale" is selected.

Version 1.7.7:

  • You can now choose whether you want to configure your wallet manually or not.
  • Minor changes.

Version 1.7.6:

  • Fixed failure of the contract signature on Polygon blockchain. #288.

Version 1.7.5:

  • Added support for the OpenSea Deletion tool.
  • Minor fixes about the listing part.

Version 1.7.4:

  • Correction of the listing in loop after a failure.
  • Correction of an incorrect file for the generated listing file.
  • Minor corrections and modifications.

Version 1.7.3:

Versions 1.7.2 and 1.7.2.1:

  • Modification of the main.py file to make it more compatible with the new future tools.
  • Fixed list index out of range error with unlockable content.

Version 1.7.1:

  • Fixed the several issues with the Coinbase Wallet. #278.

Version 1.7.0:

  • Split the main.py file into different structures to make the bot more modular and compatible with future tools.
  • Fixed the problem of connecting to OpenSea which opens a tab to download MetaMask.

Version 1.6.14:

  • Fixed the problem of the URL with the "Sale only".
  • Minor fixes.

Version 1.6.13:

  • Improved manual resolution for reCAPTCHA. #264.
  • Fixed some issues with blockchain change. #262.
  • Minor fixes.

Version 1.6.12:

  • Added support for blockchain switching on MetaMask (need feedback - may not work with Coinbase Wallet). #262.
  • Fixed list index out of range error with reCAPTCHA solver using CUDA. #263.
  • Removed unnecessary printouts used during development.
  • Minor corrections for sale part.

Version 1.6.11:

  • Fixed the problem with the collection. #258.
  • Fixed 2Captcha callback function. #259.
  • Fixed the problem with downloading the pre-trained file (urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate) by changing the download method.

Versions 1.6.10 and 1.6.10.1:

  • Fixed restarting the upload or sale when it fails the first time. #253.
  • Minor correction concerning the connection to OpenSea: the bot made the browser restart instead of trying a second time.

Versions 1.6.9 to 1.6.9.3:

  • Added a new feature for collections. You can now use the URL format of your collection. This can solve the problem of collections not being found or clicked in the list.
    From Crypto Parrot NFTs to crypto-parrot-nfts, depending on the URL of your collection: https://opensea.io/collection/crypto-parrot-nfts/.
  • Minor fixes about version 1.6.9.

Versions 1.6.8 and 1.6.8.1:

  • Added support for the 2Captcha API. #239.
  • Minor fixes.

Version 1.6.7:

  • Improved MetaMask wallet switching, you can use the default account by skipping this step.
  • Fixed the gateway problem. #249.

Version 1.6.6:

Version 1.6.5:

  • Merge the main.py and main-manual-resolution.py files.
  • Dissociation of the requirements files, one for the bot and one for the reCAPTCHA solver.

Version 1.6.4:

  • The bot did not go to the sale page after the sequence of a failure and a success. #225.

Version 1.6.3:

Version 1.6.2:

  • Wyvern 2.3 contract signature fixed for ChromeDriver and GeckoDriver. #152, #165, #183, #201.
  • Minor corrections and improvements.
  • Yolov5x6 and Real-ESRGAN models, and the recaptcha.py file are not loaded when the "Sale only" option is selected.

Version 1.6.1:

  • Updated the requirements.txt file, conflicts and problems seem to be corrected.
  • Removed unnecessary files from the yolov5/ directory.
  • Fixed the problem of connection to OpenSea.
  • Improved reCAPTCHA verification when solved.

Version 1.6.0:

  • The OpenSea connection problem seems to be fixed. An open tabs check has been added. #159, #167, #181, #187.
  • reCAPTCHA solver added (Real ESRGAN + Yolov5x6 models used with PyTorch). #157, #179, #186.
    ➜ Future improvements: models of crosswalks, chimneys, bridges.

Version 1.5.12:

  • Wyvern 2.3 contract support (need feedbacks). #152, #161, #165.

Version 1.5.11:

  • Correction of the MetaMask contract signature (feedback needed). #144.
  • Wyvern 2.3 contract support (beta - need feedbacks). #152.
  • In progress: improved support for MacOS (M1) - duration and contract list issues.

Version 1.5.10:

  • Minor fixes concerning the sale() method of the OpenSea class.
  • Fixed exception iteration error.

Version 1.5.9:

  • The close() method of the Webdriver class has been fixed. It creates an exception when listing NFTs. As a result, it does not try to list them a second time. #144, #145, #149.
  • During the download, when the webdriver starts, sometimes an error occurs and creates an exception. It was supposed to close the webdriver but it caused the bot to crash.
  • The download of webdriver requires a manual entry of the path after a number of failures.

Version 1.5.8:

  • Errors related to incorrectly formatted files are now supported. An error is displayed but the bot does not stop abruptly. #90.
  • False listing errors are reduced, the robot checks a second time if the NFT is correctly listed.

Version 1.5.7:

  • With each failed upload or sale, the bot retries a second time before saving the NFT data in an autogenerated file.
  • The duration has been fixed for GeckoDriver (Mozilla Firefox). #121.

Version 1.5.6:

  • The dict_to_list() method has been optimized and shortened.
  • Minor fixes.

Version 1.5.5:

  • Fixed the metamask_contract() method. It was not signing the contract when completing the listing for the Ethereum Blockchain.
  • Minor fixes.

Version 1.5.4:

  • The HTTPConnectionPool error in Selenium is fixed, it was caused by defining the driver inside a loop. Now the bot will print an error and restart to launch the bot. #112.
    ➜ For more informations: Reddit - Ralphc360's comment.
  • You can now sell your NFTs on the Ethereum Blockchain for free.

Version 1.5.3:

  • Fixed the Webdriver-Manager module, it was downloading the ChromeDriver or GeckoDriver at each webdriver launch. Now it uses the path of the downloaded webdriver. #112.
  • Fixed the collection input. #108.

Version 1.5.2:

  • Headless mode support. Download Mozilla Firefox and you can use this bot in the background without any interface. Note: Firefox may be unstable and some features may work differently or not at all. #64, #69, #106.
  • Fixed the connection to the MetaMask success indicator.

Version 1.5.1:

  • Fixed the problem of the worker version 1.5.0. The bot now continues to upload and does not restart the upload from the beginning. #107.

Version 1.5.0:

  • The reCAPTCHAs can now be bypassed. The bot restarts for each upload - it's a bit slow but it works. #98, #102.
    Thanks to Kanishka-Chandra and elwanm.
  • The bot restarts after 3 failed connections to the wallet or to OpenSea.

Version 1.4.9:

  • Minor fixes.
  • Developers can now add new wallets if they wish.
  • ChromeDriver is automatically downloaded - no need to do it manually (pip install -r requirements.txt required).
  • The reCAPTCHAs solver is not integrated/configured.

Version 1.4.8:

Version 1.4.7:

  • The default language of ChromeDriver is now English to ensure maximum compatibility. The date did not work in some countries because of the different formats that OpenSea offers. #67.
  • Minor fix (Colorama module).

Version 1.4.6:

  • The duration has been corrected. OpenSea does not allow to change the year when the next year is more than 6 months away. So it was impossible to enter the month without it being replaced by December (12 - maximum number because the year was entered instead); Note: maximum duration is 6 months. #55.
  • The connection to OpenSea has certainly been corrected. (need feedback about this - I don't have any problems on my side). #53, #58, #61.

Version 1.4.5:

  • Minor fix for Linux users. The clear_text(self) method inserts an "A" when it tries to clear the inputs before sending the data. #39.

Version 1.4.4:

  • Connection to OpenSea with MetaMask corrected. Download of the extension was requested. #53.
  • Connection to OpenSea with MetaMask improved.

Version 1.4.3:

  • File preview is now added. #48.

Version 1.4.2:

  • Listing of NFT on the Ethereum Blockchain is fully supported. Be sure to make a deposit and have more than 0.05 ETH on your wallet.

Version 1.4.1:

  • Small fix for XLSX files. Empty cells were interpreted as "NaN", which is not interpreted as an empty string for Python. #18, #23.

Version 1.4.0:

  • You can now decide whether you want to upload or sell your NFTs, or both. #3, #22.
  • Signing the MetaMask contract works every time. It can take 30 seconds to be signed when connecting to OpenSea. #5, #17.
  • After uploading the NFT, the bot would crash when it tried to sell it (the URL was not correct). Now it doesn't. #17.
  • MacOS and Linux support improved.
  • Calendar method improved.

Version 1.3.0:

  • Important fixes. #4, #6, #10, #11, #12, #14.
  • CSV file modified: separator changed (from ";" to ";;").

Version 1.2.0:

  • Possibility to set a price for each NFT added.
    ➜ 1+ supplies and Polygon blockchain support added.
  • Supply input issue fixed.
  • Calendar method improved.

Version 1.2.0-alpha:

  • Possibility to set a price for each NFT added.

Version 1.1.0:

  • XLSX support added.
  • PC-wide data file browse support.
  • Properties, Stats and Levels issues fixed. #1.

Version 1.0.0:

  • Inital commit.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].