{"id":23545526,"url":"https://github.com/bh2smith/safe-airdrop","last_synced_at":"2026-02-03T17:04:24.786Z","repository":{"id":38453056,"uuid":"316587371","full_name":"bh2smith/safe-airdrop","owner":"bh2smith","description":"A Safe app for distributing tokens from CSV transfer files.","archived":false,"fork":false,"pushed_at":"2025-05-16T14:35:10.000Z","size":3661,"stargazers_count":72,"open_issues_count":22,"forks_count":46,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-20T03:42:50.050Z","etag":null,"topics":["airdrop","csv","ethereum","gnosis-safe","multisend","multisender"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bh2smith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-27T19:48:02.000Z","updated_at":"2025-02-07T14:43:53.000Z","dependencies_parsed_at":"2023-02-08T04:46:49.839Z","dependency_job_id":"e9093e84-3c72-4d06-b926-eead0c69795d","html_url":"https://github.com/bh2smith/safe-airdrop","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/bh2smith/safe-airdrop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bh2smith%2Fsafe-airdrop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bh2smith%2Fsafe-airdrop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bh2smith%2Fsafe-airdrop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bh2smith%2Fsafe-airdrop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bh2smith","download_url":"https://codeload.github.com/bh2smith/safe-airdrop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bh2smith%2Fsafe-airdrop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29050132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T15:43:47.601Z","status":"ssl_error","status_checked_at":"2026-02-03T15:43:46.709Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airdrop","csv","ethereum","gnosis-safe","multisend","multisender"],"created_at":"2024-12-26T08:18:44.755Z","updated_at":"2026-02-03T17:04:24.771Z","avatar_url":"https://github.com/bh2smith.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gnosis Safe - CSV Airdrop; A Safe App for Easy Transfers\n\nSend arbitrarily many distinct tokens, to arbitrarily many distinct accounts with various different values from a CSV file in a single Safe transaction!\n\n## Motivation \u0026 Usage Guide\n\nHave you encountered the painful task of sending out multiple token transfers to several recipients with various different values?\nNot only do you have to have to initiate multiple transactions, but then each transaction requires a signature threshold followed by the time it takes to have each transaction mined...\nWell these days are over!\nFinally a Safe App which allows you to transfer various ERC20 tokens to arbitrarily many recipients for varying amounts in a single Ethereum transaction.\nIts as simple as uploading a CSV \"transfer\" file and submitting a single transaction.\n\nIn this article, we demonstrate how to use the Gnosis Safe - CSV Airdrop\n\n## ❤️ Donate ❤️\n\nIf you find this app useful for your onchain activities or would like to contribute, donations are welcomed at\n\n```\n0xD011a7e124181336ED417B737A495745F150d248\n```\n\nThis can also be done directly in the the app on your next airdrop via the \"Donate\" button!\n\n## Loading the App in Gnosis Safe Interface\n\nThe current version is deployed on IPFS at\nhttps://cloudflare-ipfs.com/ipfs/QmUFKPZSn73LiwznQ3PVWQXpcaWVdYrSM6c5DES2y24EYd\n\nFor older deployed versions, you can find the IPFS hash under [Releases](https://github.com/bh2smith/safe-airdrop/releases).\n\nOn mainnet or rinkeby, you can navigate to the [Gnosis Safe](https://gnosis-safe.io/app/) Apps tab and load the app from \"Add Custom App\", then follow the instructions below to perform your first airdrop.\n\nNote that, the mainnet version relies on the [Uniswap Default Token List](https://tokenlists.org/token-list?url=https://gateway.ipfs.io/ipns/tokens.uniswap.org) for token icons and number of decimal places. If you plan to airdrop a token that is not a member of this list, you will have to provide the number of decimal places as the `decimals` column on each unlisted token transfer in your transfer file.\n\n## Preparing a Transfer File\n\nTransfer files are expected to be in CSV format with the following minimally required columns:\n\n- _receiver_: Ethereum address of transfer receiver.\n- _token_address_: Ethereum address of ERC20 token to be transferred.\n- _amount_: the amount of token to be transferred.\n\nAn example transfer file would look as follows:\n\n```\ntoken_address,receiver,amount\n0xd0dab4e640d95e9e8a47545598c33e31bdb53c7c,0x1000000000000000000000000000000000000000,0.02\n0xa7d1c04faf998f9161fc9f800a99a809b84cfc9d,0x3000000000000000000000000000000000000000,0.04\n0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea,0x5000000000000000000000000000000000000000,0.06\n0x4dbcdf9b62e891a7cec5a2568c3f4faf9e8abe2b,0x7000000000000000000000000000000000000000,0.08\n0x784b46a4331f5c7c495f296ae700652265ab2fc6,0x9000000000000000000000000000000000000000,0.10\n```\n\nHere we have 5 transfers, each for a different token, going to a different receiver and for different amounts. On the rinkeby network, these tokens are GNO, OWL, DAI, USDC and GUSD respectively.\n\n## Native Token Transfers\n\nSince native tokens do not have a token address, you must leave the `token_address` column blank for native transfers. An example transfer file containing only native transfers is [here](test_data/native-token.csv). Of course, these files can be mixed as follows;\n\n```\ntoken_address,receiver,amount\n0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d,0x206a9EAa7d0f9637c905F2Bf86aCaB363Abb418c,1\n,0x7f01D9b227593E033bf8d6FC86e634d27aa85568,0.0002\n```\n\nwhich (on xdai) represents a transfer for 1 wxDai and 0.0002 native xDai.\n\n## Initializing your Transaction\n\nNavigate to the APPS page from within your [Gnosis Safe MultiSig](http://gnosis-safe.io/app). If you don't already have a Safe, you can create one for free!\n\n1. Open up the CSV Airdrop App, which looks like this:\n\n\u003cimg src=\"./public/tutorial/App-screen.png\" width=\"200\"\u003e\n\n2. Upload your _Transfer File_ and verify that the tokens, recipients and amounts are displayed as expected.\n\n\u003cimg src=\"./public/tutorial/File-uploaded.png\" width=\"400\"\u003e\n\n3. Click Submit, execute and wait for your transaction to be mined.\n\n\u003cimg src=\"./public/tutorial/Transaction-submission.png\" width=\"250\"\u003e\n\nA successful transaction will look like the following [example on etherscan](https://rinkeby.etherscan.io/tx/0x25c1a799957161a18a20056ffde5edf53dc426adc231d5fa456111e3eb641e59):\n\n\u003cimg src=\"./public/tutorial/tx-success.png\" width=\"500\"\u003e\n\n## Developers Guide\n\nInstall dependencies and start a local dev server.\n\n```\nyarn install\ncp .env.sample .env\nyarn start\n```\n\nThen:\n\n- If HTTPS is used (by default enabled)\n  - Open your Safe app locally (by default via https://localhost:3000/) and accept the SSL error.\n- Go to Safe Multisig web interface\n  - [Mainnet](https://app.gnosis-safe.io)\n  - [Rinkeby](https://rinkeby.gnosis-safe.io/app)\n- Create your test safe\n- Go to Apps -\u003e Manage Apps -\u003e Add Custom App\n- Paste your localhost URL, default is https://localhost:3000/\n- You should see Safe Airdrop as a new app\n- Develop your features from there\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbh2smith%2Fsafe-airdrop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbh2smith%2Fsafe-airdrop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbh2smith%2Fsafe-airdrop/lists"}