All Projects → theskeletoncrew → air-support

theskeletoncrew / air-support

Licence: MIT License
Airdrop automation tools for Solana from The Skeleton Crew

Programming Languages

shell
77523 projects
typescript
32286 projects
Makefile
30231 projects

Projects that are alternatives of or similar to air-support

awesome-defi
Curated list of awesome DeFi protocols, dapps, wallets and other resources
Stars: ✭ 36 (-67.86%)
Mutual labels:  nft, solana
Awesome NFTs
A curated collection about NFTs - by bt3gl
Stars: ✭ 42 (-62.5%)
Mutual labels:  nft, nfts
nft-collection-generator
Generates images and metadata for a collection of NFTs.
Stars: ✭ 77 (-31.25%)
Mutual labels:  nft, nfts
metaboss
The Metaplex NFT-standard Swiss Army Knife tool.
Stars: ✭ 575 (+413.39%)
Mutual labels:  nft, solana
fetch-nft
🖼🎑🌠 A utility to fetch and easily display Ethereum & Solana NFTs in a common format given any wallet
Stars: ✭ 83 (-25.89%)
Mutual labels:  nft, solana
fnd-docs
Foundation developer docs
Stars: ✭ 33 (-70.54%)
Mutual labels:  nft, nfts
solana-nft-token-metadata-update
Node.js script to update NFT Token metadata on Solana Blockchain
Stars: ✭ 143 (+27.68%)
Mutual labels:  nft, solana
Axie Infinity Extras
Here are all the websites and projects that are useful if you are an Axie Infinity player. If you find some projects that are not on the list, feel free to make a pull request!
Stars: ✭ 13 (-88.39%)
Mutual labels:  nft, nfts
opensea-scraper
Scrapes nft floor prices and additional information from opensea. Used for https://nftfloorprice.info
Stars: ✭ 129 (+15.18%)
Mutual labels:  nft, nfts
samila
Generative Art Generator
Stars: ✭ 750 (+569.64%)
Mutual labels:  nft, nfts
metaplex
A directory of what the Metaplex Foundation works on!
Stars: ✭ 3,233 (+2786.61%)
Mutual labels:  nft, solana
incomplete-guide-to-imx
An attempt to TLDR; Layer 2 development with IMX.
Stars: ✭ 29 (-74.11%)
Mutual labels:  nft, nfts
arloader
Rust command line application and client for uploading files to Arweave.
Stars: ✭ 79 (-29.46%)
Mutual labels:  nft, solana
solana-nft-monitor
Monitor Solana NFT projects using Github Actions + flatgithub.com
Stars: ✭ 31 (-72.32%)
Mutual labels:  nft, solana
MetaplexMetadata-js
Get the Metaplex Metadata from NFTs with Metaplex standard
Stars: ✭ 48 (-57.14%)
Mutual labels:  nft, solana
enjin-cpp-sdk
Enjin Platform SDK for C++.
Stars: ✭ 15 (-86.61%)
Mutual labels:  nft, nfts
metaplex-cli
Command line interface for Solana Metaplex programs.
Stars: ✭ 16 (-85.71%)
Mutual labels:  nft, solana
enjin-java-sdk
Enjin Platform SDK for Java.
Stars: ✭ 32 (-71.43%)
Mutual labels:  nft, nfts
opensea automatic uploader
(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.
Stars: ✭ 205 (+83.04%)
Mutual labels:  nft, nfts
CryptoPunks
Subgraph for the Cryptopunks marketplace
Stars: ✭ 37 (-66.96%)
Mutual labels:  nft, nfts

air-support

Air Support: Tools for Automating Airdrops of Solana NFTs

The Skeleton Crew | Twitter: @skeletoncrewrip | Discord: Skeleton Crew

Feeling generous? Your contributions help fund future development.
Send tips to our Solana wallet: CH6afYjjydFLPSrfQYEUNCdSNohLCAQV6ir6QnYeZU3t

See also: Treat Toolbox, a generative art manager for NFT projects from the Skeleton Crew.

Background

The Skeleton Crew launched on Oct 1, and has since been delivering daily airdrops of artwork from indie artists, with plans to continue for the entire month of October.

In order to execute on this plan, we needed tools that allowed us to automate the process. This repository is the result of that effort, which we now share with you in the hopes of more teams spending less time giving themselves Carpal tunnel syndrome doing all of this manually inside of Phantom :)

IMPORTANT - Before you Start

Creating and sending NFTs in bulk comes with costs. On Solana, the costs are significantly better than some other chains. BUT, it's a good idea to try a drop on devnet first to be sure you understand the fees involved. We assume no responsibility for any costs incurred through the use of these tools. Use at your own risk.

Getting Started

In order to use Air Support, you will need to install and configure the current version of Metaplex. We run this locally with some customizations for speed (ex. hardcoding some metadata which is common across all of our drops).

Also, have a look at the configuration options at the top of the Makefile. At minimum, you'll need to specify paths to Metaplex, your keyfile, and an RPC Host. It's highly recommended that you use a third-party RPC provider to perform large airdrops. DROP is a name for a set of airdrops; in our case we numbered these 1-31 for each day in October. TYPE is a name for a single airdropped item that's part of a drop; in our case we had a "trick" and a "treat" as part of each drop, sometimes even "trick1", "trick2"... etc. The name will be "token" by default, and is used to prefix log files in each step below.

For the generate step to work, you will need to build Metaplex's rust tools. Inside metaplex/rust, run:

cargo build

You will also need a few other pieces of software installed, including:

  • gshuf: brew install coreutils
  • jq: brew install jq

How to Use Air Support

Prerequisites: follow all steps in the Getting Started section above.

Then, the basic workflow looks something like this:

📇 prepare: Collect a list of token mint addresses, for which the holders of those tokens represent a community you wish to airdrop to. This is sometimes done by providing your Candy Machine address to https://tools.abstratica.art. Store this in the air support root directory as token-mint-addresses.json.

✍️ record: run this to fetch the wallet addresses of all users that hold the tokens, and don't have them listed on a secondary exchange. The goal here is to avoid sending airdrops to exchanges where they may not be recoverable. Note: As of now, Air Support can only identify tokens listed on Digital Eyes, Magic Eden, Solanart, and Alpha.art. FTX and Solsea use unique addresses for escrow wallets. The command below will fetch the addresses and store them in airdrops/1/token-holders.log.

make record DROP=1

🎨 create: Start Metaplex, and use it to create your Master Edition NFT with a limited supply (the number of airdrops you want to send).

cd metaplex/js && yarn start

🖨 generate: run this to generate prints of the Master Edition. These will be stored in the wallet associated with the keys you specify as options. The below command would create 500 prints of the Master with mint address RPdCMRxBx4YPcJv6HUb2S5zHGJcDrDrZszUNNGmLwfT.

make generate MINT=RPdCMRxBx4YPcJv6HUb2S5zHGJcDrDrZszUNNGmLwfT NUM=500

🏅 choose: run this next to decide who will receive the airdrop. Important to note that if 2 tokens are owned by the same wallet, by design they have twice the chance to receive an airdrop as someone with only 1 token when using this script to pick recipients. If you have 10,000 token owners recorded as not listed on marketplaces in step 2, and 500 airdrops to send, this will randomly select 500 of those recorded tokens.

make choose NUM=500

📬 distribute: the last step is to send the airdrops out. This script will run through the addresses generated in step 4 and the recipients chosen in step 5 and send airdrops 1-by-1. It is possible that failures will occur. Logs are saved during the process in a {NAME}_sent.log file. Because distribution happens line-by-line, it is safe to rerun the script again to attempt to correct failures. You can also check your wallet to see that all tokens have been distributed. (Note that your Master edition will still remain as only prints are recorded to be sent in step 4. You can keep these for yourself or a community vault.) There is also an optional STARTINDEX param that can be used if you need to restart a distribution from somewhere in the middle.

make distribute

🔥 burn: if you realize you made a mistake on your Master NFT, but only after you went ahead and started printing a bunch of editions, this command will automate the process of sending those costly mistakes to the Solana incinerator. There is also an optional STARTINDEX param that can be used if you need to restart a distribution from somewhere in the middle.

make burn

Other Tips

Transparency is key when running airdrop campaigns to your communities. In an ideal world, where we had more than 24 hours between our launch and the start of our month of airdrops, we might have attempted to bring some or all of these processes on-chain.

The next best thing we could offer is a transparency repo, where we publish the daily receipts of our airdrops, to make it easy for our community to investigate the drops on the blockchain if they feel the desire to do so. Our tools give you the receipts as output to do the same if you wish.

You can have a look at that repo here: https://github.com/theskeletoncrew/airdrop-transparency

Acknowledgements

The record step utilizes code created by the Exiled Apes organization, shared under an Apache License, originally found here: https://github.com/exiled-apes/exiled-holders

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].