{"id":41310825,"url":"https://github.com/tmlnv/layer_zero_bridger","last_synced_at":"2026-01-23T05:23:21.227Z","repository":{"id":163234442,"uuid":"638640849","full_name":"tmlnv/layer_zero_bridger","owner":"tmlnv","description":"Layer Zero Bridger, automating and managing USDC and USDT transfers across various blockchains.","archived":false,"fork":false,"pushed_at":"2024-08-21T09:58:04.000Z","size":395,"stargazers_count":34,"open_issues_count":2,"forks_count":15,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-21T11:22:55.142Z","etag":null,"topics":["cryptocurrency","layerzero","stargate","web3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/tmlnv.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}},"created_at":"2023-05-09T19:33:24.000Z","updated_at":"2024-08-21T09:58:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac3ca867-eb27-4cc2-85aa-c255f3df7787","html_url":"https://github.com/tmlnv/layer_zero_bridger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tmlnv/layer_zero_bridger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmlnv%2Flayer_zero_bridger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmlnv%2Flayer_zero_bridger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmlnv%2Flayer_zero_bridger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmlnv%2Flayer_zero_bridger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmlnv","download_url":"https://codeload.github.com/tmlnv/layer_zero_bridger/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmlnv%2Flayer_zero_bridger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28680684,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T04:33:33.518Z","status":"ssl_error","status_checked_at":"2026-01-23T04:33:30.433Z","response_time":59,"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":["cryptocurrency","layerzero","stargate","web3"],"created_at":"2026-01-23T05:23:21.074Z","updated_at":"2026-01-23T05:23:21.197Z","avatar_url":"https://github.com/tmlnv.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Layer Zero Bridger\n\nThe Layer Zero Bridger is a Python script that automates the process of transferring USDC or USDT (stablecoin cryptocurrencies) between different blockchains (Polygon -\u003e Avalanche -\u003e BSC -\u003e Polygon as a default route). It uses a set of pre-configured wallet addresses to perform transfers in both directions and repeat the process a configurable number of times.\nIn addition to this, it is also possible to use script for Bungee Refuel, wallet balance checking, new wallets generation and more.\n\n![main.py script logger example for one wallet](https://drive.google.com/uc?export=view\u0026id=1D-kc1iyD6cSAHgX4EjYQA-lfJY_sTMJz)\n\n## Supported chains and tokens\n\n- Polygon (USDC, USDT)\n- Fantom (USDC)\n- Avalanche (USDC, USDT)\n- BSC (USDT)\n- Arbitrum (USDT, USDC)\n- Optimism (USDC)\n- Base (USDC)\n\n## Requirements\n\n- Python 3.11\n- An understanding of blockchain, cryptocurrency, and how to handle wallets and private keys securely.\n- Docker (optional)\n\n## Getting Started\n\n1. Clone the repository:\n\n    ```bash\n    git clone https://github.com/tmlnv/layer_zero_bridger.git\n    cd layer_zero_bridger\n    ```\n\n2. Install the required dependencies:\n\n    ```bash\n    pip install -r requirements.txt\n    ```\n   \n   Or, using Docker:\n   \n   ```bash\n   docker build -t layer_zero_bridger .\n   ```\n\n3. Configure your wallets and number of cycles:\n\n    Specify the wallet keys in the `private_keys.example.env` file and run a command below.  \n    _Note_: keys should be specified with a name for each key in a `KEY=value` way.\n\n   ```bash\n   mv private_keys.example.env private_keys.env\n   ```\n   \n    In the `config.py` file, specify the min and max $ amounts for transferring, the number of transfer cycles you want to run and a $ amount for Bungee Refueling.\n\n    ```python\n    AMOUNT_MIN = 100  # Min amount to bridge\n    AMOUNT_MAX = 150  # Max amount to bridge\n    # If stated amounts exceed wallet balance, the whole available balance would be bridged\n    TIMES = 10  # Number of transfer cycles\n    BUNGEE_AMOUNT = 10  # $ value of native asset to be bridged via Bungee Refuel\n    ```\n    **Warning: Never disclose your private keys. They are sensitive information.**\n\n## Usage\n\nExecute the `main.py` script:\n\n```bash\npython main.py\n```\n\nOr, using Docker:\n\n```bash\ndocker run -v ./private_keys.env:/app/private_keys.env layer_zero_bridger\n```\n\nTo pass CLI arguments, append them after the image name and private_keys.env mounting:\n\n```bash\ndocker run -v ./private_keys.env:/app/private_keys.env layer_zero_bridger --mode balance\n````\n\n## Operation\n\nThe main script performs the following actions for each wallet:\n\n1. After a random delay of 1 to 200 seconds, it initiates a USDC transfer from Polygon to Avalanche.\n2. It waits for a random period between 1200 and 1500 seconds.\n3. Then, it initiates a USDC transfer from Avalanche to BSC. USDT tokens are received on BSC.\n4. It waits for a random period between 1200 and 1500 seconds.\n5. Then, it initiates a USDT transfer from BSC back to Polygon. USDC tokens are received on Polygon.\n6. It waits for a random period between 100 and 300 seconds.\n7. These steps are repeated a predefined number of times (`TIMES` in `config.py`).\n\nThe script logs all its actions and reports when each wallet's transfers are done and when all tasks are finished.\n\n## Modules usage\n\nTo use separate modules, execute the `main.py` script using `--mode` flag with one of possible options or pass the `--mode` flag followed by the specific option to the Docker run command:\n\n### One way bridge\n\nExecute only separated one-time bridging runs if you want just to transfer assets. Consider token availability on both departure and destination chains. Execute the `main.py` script using `--mode one-way` flag with one of possible options:\n- `pf` to bridge from Polygon to Fantom\n- `pa` to bridge from Polygon to Avalanche\n- `pb` to bridge from Polygon to BSC\n- `parb` to bridge from Polygon to Arbitrum\n- `po` to bridge from Polygon to Optimism\n- `pbase` to bridge from Polygon to Base\n- `fp` to bridge from Fantom to Polygon\n- `fa` to bridge from Fantom to Avalanche\n- `fb` to bridge from Fantom to BSC\n- `ap` to bridge from Avalanche to Polygon\n- `af` to bridge from Avalanche to Fantom\n- `ab` to bridge from Avalanche to BSC\n- `aarb` to bridge from Avalanche to Arbitrum\n- `ao` to bridge from Avalanche to Optimism\n- `abase` to bridge from Avalanche to Base\n- `bp` to bridge from BSC to Polygon\n- `bf` to bridge from BSC to Fantom\n- `ba` to bridge from BSC to Avalanche\n- `barb` to bridge from BSC to Arbitrum\n- `bo` to bridge from BSC to Optimism\n- `bbase` to bridge from BSC to Base\n- `arbp` to bridge from Arbitrum to Polygon\n- `arba` to bridge from Arbitrum to Avalanche\n- `arbb` to bridge from Arbitrum to BSC\n- `arbo` to bridge from Arbitrum to Optimism\n- `arbbase` to bridge from Arbitrum to Base\n- `op` to bridge from Optimism to Polygon\n- `oa` to bridge from Optimism to Avalanche\n- `ob` to bridge from Optimism to BSC\n- `oarb` to bridge from Optimism to Arbitrum\n- `obase` to bridge from Optimism to Base\n- `basep` to bridge from Base to Polygon\n- `basea` to bridge from Base to Avalanche\n- `baseb` to bridge from Base to BSC\n- `basearb` to bridge from Base to Arbitrum\n- `baseo` to bridge from Base to Optimism\n\nExample:\n\n```bash\npython main.py --mode one-way pf\n```\n### New wallet\n\nGenerate a new private key and its associated address if you require a fresh wallet. Execute the `main.py` script using `--mode new-wallet` flag.\n\nExample:\n\n```bash\npython main.py --mode new-wallet\n```\n\n### Checking Balances\n\nCheck wallet balances. Execute the `main.py` script using `--mode balance` flag.\n\nExample:\n\n```bash\npython main.py --mode balance\n```\n\n### Bungee Refuel\n\nGet native tokens on the destination chain to pay fees using Bungee Refuel. Execute the `main.py` script using `--mode refuel` flag with one of possible options:\n- `pa` to refuel from Polygon to Avalanche\n- `pb` to refuel from Polygon to BSC\n- `parb` to refuel from Polygon to Arbitrum\n- `po` to refuel from Polygon to Optimism\n- `pbase` to refuel from Polygon to Base\n- `ap` to refuel from Avalanche to Polygon\n- `ab` to refuel from Avalanche to BSC\n- `aarb` to refuel from Avalanche to Arbitrum\n- `ao` to refuel from Avalanche to Optimism\n- `abase` to refuel from Avalanche to Base\n- `bp` to refuel from BSC to Polygon\n- `ba` to refuel from BSC to Avalanche\n- `barb` to refuel from BSC to Arbitrum\n- `bo` to refuel from BSC to Optimism\n- `bbase` to refuel from BSC to Base\n- `arbp` to refuel from Arbitrum to Polygon\n- `arba` to refuel from Arbitrum to Avalanche\n- `arbb` to refuel from Arbitrum to BSC\n- `arbo` to refuel from Arbitrum to Optimism\n- `arbbase` to refuel from Arbitrum to Base\n- `op` to refuel from Optimism to Polygon\n- `oa` to refuel from Optimism to Avalanche\n- `ob` to refuel from Optimism to BSC\n- `oarb` to refuel from Optimism to Arbitrum\n- `obase` to refuel from Optimism to Base\n- `basep` to refuel from Base to Polygon\n- `basea` to refuel from Base to Avalanche\n- `baseb` to refuel from Base to BSC\n- `basearb` to refuel from Base to Arbitrum\n- `baseo` to refuel from Base to Optimism\n\nExample:\n\n```bash\npython main.py --mode refuel pa\n```\n_Note_: Consider that Bungee Refuel has different limits for different chains.\n\n## Disclaimer\n\nThis script is meant for educational purposes. Always ensure you're keeping your private keys secure.\n\n## License\n\n[MIT](https://github.com/tmlnv/layer_zero_bridger/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmlnv%2Flayer_zero_bridger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmlnv%2Flayer_zero_bridger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmlnv%2Flayer_zero_bridger/lists"}