{"id":13410332,"url":"https://github.com/AntonMeep/vaniton","last_synced_at":"2025-03-14T15:32:19.767Z","repository":{"id":41173902,"uuid":"456597461","full_name":"AntonMeep/vaniton","owner":"AntonMeep","description":"Vanity address generator for The Open Network blockchain wallets","archived":false,"fork":false,"pushed_at":"2023-10-02T10:12:27.000Z","size":145,"stargazers_count":44,"open_issues_count":1,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-07-31T20:42:16.024Z","etag":null,"topics":["address","blockchain","ton","vanity"],"latest_commit_sha":null,"homepage":"","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntonMeep.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-02-07T16:59:16.000Z","updated_at":"2024-07-27T11:34:42.000Z","dependencies_parsed_at":"2024-10-26T05:50:52.913Z","dependency_job_id":null,"html_url":"https://github.com/AntonMeep/vaniton","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fvaniton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fvaniton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fvaniton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonMeep%2Fvaniton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntonMeep","download_url":"https://codeload.github.com/AntonMeep/vaniton/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243600749,"owners_count":20317326,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["address","blockchain","ton","vanity"],"created_at":"2024-07-30T20:01:06.270Z","updated_at":"2025-03-14T15:32:19.443Z","avatar_url":"https://github.com/AntonMeep.png","language":"Ada","funding_links":[],"categories":["🛠️ Utilities"],"sub_categories":["API Services"],"readme":"vaniton ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/AntonMeep/vaniton/ci-linux.yml\n) ![GitHub](https://img.shields.io/github/license/AntonMeep/vaniton) ![Donation address](https://img.shields.io/badge/donate%20TON-EQAnTon5VVNKup8v0EUT0SvCKsRmEpotr__3eSpqYJTneIVht%20-blue)\n=======\n\n**vaniton** is a vanity wallet address generator for [The Open Network's](https://ton.org/) blockchain. Currently it supports all major versions of wallet smart contracts you could encounter (from SimpleR1 to V4R2).\n\n\u003e **Disclaimer**:\nAlways verify that mnemonic generated by this program corresponds to address by importing it into a wallet of your choice. As any other software this program may contain bugs.\n\n# Help\n```\nVanity address generator for The Open Network \u003chttps://ton.org/\u003e blockchain wallets.\nGenerates 24-word secret phrases and computes wallet address for the selected wallet\n contract version (default: V3_R2).\nOptionally, addresses are filtered out by matching against [pattern].\nProject page: \u003chttps://github.com/AntonMeep/vaniton/\u003e\n\nUsage: vaniton.exe [switches] [pattern]\n\n -j, --threads=ARG    Number of working threads running in parallel\n -w, --wallet=ARG     Wallet version to use (default: V3_R2)\n -c, --case-sensitive Match case-sensitive (default: FALSE)\n -l, --log=ARG        Log program output to file (default: '')\n -t, --test-only      Generate mainnet/test-only addresses (default: FALSE)\n -b, --bounceable     Generate bounceable/non-bounceable addresses (default: TRUE)\n -wsimpler1           Equivalent to --wallet=Simple_R1\n -wsimpler2           Equivalent to --wallet=Simple_R2\n -wsimpler3           Equivalent to --wallet=Simple_R3\n -wsimple             Equivalent to --wallet=Simple_R3\n -wv2r1               Equivalent to --wallet=V2_R1\n -wv2r2               Equivalent to --wallet=V2_R2\n -wv2                 Equivalent to --wallet=V2_R2\n -wv3r1               Equivalent to --wallet=V3_R1\n -wv3r2               Equivalent to --wallet=V3_R2\n -wv3                 Equivalent to --wallet=V3_R2\n -wv4r1               Equivalent to --wallet=V4_R1\n -wv4r2               Equivalent to --wallet=V4_R2\n -wv4                 Equivalent to --wallet=V4_R2\n```\n\n# Pattern format\nCurrently, program implements only a simple subset of regular expression patterns, here's a quick summary:\n\n| Expression | Description |\n|------------|-------------|\n| a|b        | Matches 'a' or 'b' |\n| ab         | Matches 'ab' |\n| a*         | Matches zero or more 'a's |\n| a+         | Matches one or more 'a's |\n| a?         | Matches one 'a' or nothing |\n| [ab]       | Matches 'a' or 'b' |\n| [^ab]      | Matches anything but 'a' or 'b' |\n| [a-c]      | Matches 'a' or 'b' or 'c' |\n| .          | Matches anything |\n| (abc)      | Grouping |\n\nNote, that patterns in **vaniton** match entire address string, and by default are case-insensitive (can be changed with `-c` switch). If you get stuck, it might be worth it to redirect output into *grep*, *awk*, or some other program of your liking to filter out unwanted addresses.\n\nHere are some of the examples to get you started:\n```\n$ vaniton .*abc.*           # Match any address that has \"abc\" anywhere in it\n$ vaniton .*t[o0]n.*        # Match any address that has \"ton\" or \"t0n\" anywhere in it\n$ vaniton ..al[i1]z[e3]r.* # Since first two characters are always \"EQ\" and third character is [ABCD], this would match addresses that start with \"EQalizer\", \"EQal1z3r\", \"EQaliz3r\", or \"EQal1z3r\"\n```\n\n# Safety\nThis program utilizes same algorithms used by all TON wallets and relies on well-tested cryptography libraries such as OpenSSL and SPARKNaCl. While corners were certainly cut to improve overall performance, safety was not compromised.\n\nFurthermore, **vaniton** does not have any online capabilities, dynamically loaded code (apart from abovementioned OpenSSL on certain systems), nor a large number of obscure dependencies.\n\n# Are you cracking passwords? Can I accidentally get access to someone else's funds?\nImpossible, this will never happen. Although mathematics forces me to say that this is *possible*, it is so unimaginably improbable that calling it impossible is a pretty good approximation.\n\nSee, secret phrase consists of a 24-word mnemonic phrase where each word can be one of 2048 words of a special wordlist. This gives us 2048^24 or about 2.9\\*10^79 possible combinations. It is rather difficult to wrap one's head around a number this big, but just for the sake of comparison, Solar System, the entirety of it, consists of about 1.2\\*10^56 atoms. Yep, it just ain't gonna happen\n\n# Speed\n**vaniton** is extremely slow compared to similar vanity address generators made for different blockchains. This all comes down to key derivation functions used by TON wallets, which increases time required to calculate a private key from supplied mnemonic phrase.\nThis is done to greatly decrease efficiency of brute-force attacks where an attacker would try to blindly go over a large number of private keys. Unfortunately, this is pretty much what searching for a vanity address is like.\n\nTips on improving performance:\n- Use as many worker threads as possible\n- Limit number of characters you're searching for\n- Search for characters of both upper and lower case\n- 1337. Try t0 s34rch f0r numb3rs t00\n\nHere's an example table that shows you how much time it takes to match N characters. Albeit time to match a certain set of characters is largely dependent on your luck, and these measures were made on a fairly slow virtual machine, this can give you a good idea on what to expect.\nYou can used supplied `benchmark` tool to measure address generation speed of your machine.\n\n| N | Time (s) | How much longer? |\n|---|----------|------------------|\n| 1 |      0.1 |                - |\n| 2 |      3.9 |              39x |\n| 3 |    595.6 |             153x |\n| 4 |  17441.6 |              29x |\n\n\n# Wallet contract versions\nDue to the nature of TON blockchain, users' wallets *are* smart contracts. Over time, different versions of wallet smart contracts were used in TON. It is important to specify which version of a wallet you want to be generating addresses for. Here's a quick overview of different versions:\n- Do not use Simple or V2 wallet versions, these are largely obsolete\n- V3R2 is the default version of wallets created by all major wallet software. This is also the default for vaniton and a good place to start\n- V4R2 is, at the time of writing, the latest and greatest version that introduces plug-in functionality. Choose this if you want to have a future-proof wallet\n\n\u003eIt is important to note that basic functionality of all wallet versions is the same - you don't have to update whenever a new version comes out\n\n# Importing the mnemonic phrase\nAfter **vaniton** created a nice address for you, you can import the mnemonic phrase it generated into a wallet software of your liking. If version of the wallet contract is different than the software's default (i.e. not V3R2), then your wallet software will show you a completely different address. Fear not, once you deposit some funds to the address generated by **vaniton**, your wallet software should recognize that and switch to use it (re-importing your mnemonic phrase might be necessary).\n\nBe aware, that some wallet software may implement automatic wallet smart contract upgrades by sending funds from an older version to a newer version, which can completely ruin the purpose of using **vaniton** to generate the address.\n\n# Donations\nDonations will help me to work on improvement of this project!\nFeel free to drop a few TON cents to the following address:\n\u003e EQAnTon5VVNKup8v0EUT0SvCKsRmEpotr_3eSpqYJTneIVht\n\nYes, this address was in fact generated by **vaniton** over a course of a few days :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAntonMeep%2Fvaniton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAntonMeep%2Fvaniton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAntonMeep%2Fvaniton/lists"}