{"id":15567398,"url":"https://github.com/chappjc/dcrvanity","last_synced_at":"2025-04-24T00:03:43.540Z","repository":{"id":90752524,"uuid":"66178336","full_name":"chappjc/dcrvanity","owner":"chappjc","description":"Decred vanity address generator.  New repo --\u003e","archived":false,"fork":false,"pushed_at":"2021-12-22T17:44:08.000Z","size":25,"stargazers_count":4,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-24T00:03:26.568Z","etag":null,"topics":["cryptocurrency","decred","go","golang"],"latest_commit_sha":null,"homepage":"https://github.com/dcrlabs/dcrvanity","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chappjc.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":"2016-08-21T02:53:56.000Z","updated_at":"2019-09-18T17:57:54.000Z","dependencies_parsed_at":"2024-06-20T12:57:59.752Z","dependency_job_id":"480ca62c-67a7-4731-877e-ab16470559b7","html_url":"https://github.com/chappjc/dcrvanity","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chappjc%2Fdcrvanity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chappjc%2Fdcrvanity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chappjc%2Fdcrvanity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chappjc%2Fdcrvanity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chappjc","download_url":"https://codeload.github.com/chappjc/dcrvanity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250535098,"owners_count":21446508,"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":["cryptocurrency","decred","go","golang"],"created_at":"2024-10-02T17:10:59.813Z","updated_at":"2025-04-24T00:03:43.514Z","avatar_url":"https://github.com/chappjc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"dcrvanity\n====\n\ndcrvanity is a multi-core vanity address and public-private keypair generator\nfor [Decred](https://decred.org/) written in Go.\n\nIt takes one or two regexp patterns that are matched against addresses in a\nbrute force search.  The patterns may be unrelated, although in the case where\none pattern implies a match on the other, a switch can be given to speed up the\nsearch.\n\n## Important\n\nUnderstand the security and privacy implications of [address reuse][1].  [See\nalso][2].\n\n## Requirements\n\n[Go](http://golang.org) 1.7 or newer.\n\n## Installation\n\n```bash\ngit clone https://github.com/chappjc/dcrvanity $GOPATH/src/chappjc/dcrvanity\ncd $GOPATH/src/chappjc/dcrvanity\ngo get -u github.com/Masterminds/glide\n$GOPATH/bin/glide install\ngo build\n```\n\n## Usage\n\n```none\n$ dcrvanity -h\ndcrvanity version 0.1.3-beta\nUsage: dcrvanity [-pattern1] [-pattern2] [-N] [-pat1implies2] [-h]\nGenerate a Decred private and public key, with an address matching pattern(s).\n  -h            Print this message\n  -pattern1=    (string) Primary regexp pattern. Exit on match.\n  -pattern2=    (string) Secondary regexp pattern. Print and continue on match.\n  -pat1implies2 (bool) A match on pattern1 implies a match on pattern2.\n                Matching on pattern1 skipped unless pattern2 matches.\n  -N=           (int) Number of goroutines to launch (~number of cores to use).\n  -testnet      (bool) Generate a testnet key instead of mainnet.\n  -simnet       (bool) Generate a simnet key instead of mainnet.\n```\n\nWhen a match is found, dcrvanity outputs the matching address, which is a\ncompressed representation of the public key, along with the corresponding\nprivate key. The private key is also compressed; it uses a Wallet Import Format\n(WIF) encoding, the format required by dcrwallet's `importprivkey` RPC. See the\nsection [Importing the Address into Your Wallet](#importing-the-address-into-your-wallet) for details.\n\n**But wait!**  Before you start searching, be aware that there are some\n[restrictions on the characters](#first-character-restrictions) that may appear\nin the address.\n\n## First Character Restrictions\n\nMany character may not appear in the first digit following \"Ds\" in a Decred\naddress. Notably, this includes the potentially confusing characters `0OIl`,\nwhich are present nowhere in an address. The following characters should be\npossible in the first position after the Ds prefix: `[a-npQ-Z]` (lowercase a to\np, excluding o and l, and uppercae Q to Z). Please read more about [base58\naddress encoding][4], ripemd160, and [this post by davecgh][5] for more\ninformation.\n\nBefore beginning a potentially long search, test the leading character alone if\nin doubt of its validity.  These checks may be built into the generator in the\nfuture.\n\n## Importing the Address into Your Wallet\n\nThe Wallet Import Format (WIF) represents the private key in the format\nrequired by `importprivkey`, dcrwallet's RPC used to import the address into\nyour wallet.  The private portion of the public-private keypair returned by\ndcrvanity is already in this format. To import the address:\n\n 1. Unlock your wallet with `walletpassphrase`\n 1. Use dcrctl to issue `importprivkey \u003cWIF_key\u003e`\n\n This is described in more detail on [dcrdocs][3].\n\n## Examples\n\nUse 1 core (the default) to search for an address starting with \"Dsdcr\":\n\n    $ dcrvanity -pattern1 dcr\n    Primary pattern:  ^Dsdcr\n    30325\n    Woohoo!\n    Addr: Dsdcr4zcCVvataLzb5w5m6WdnbrM543EV3N\n    Private key (WIF-encoded):  PmQeeekBXGjiPg4SBvHiZsym2zrM8NeTSUgDFjneFaGknaS5NjkER\n\nUse 2 cores (`-N 2`) to ultimately search for \"fred\" immediately following \"Ds\".\nReport any case-insensitive match of \"fred\", but don't stop searching. Specify\nthat matching the primary pattern implies a match on secondary\n(`-pat1implies2`).\n\n    $ dcrvanity -pattern1 \"fred\" -pattern2 \"f(?i)red\" -pat1implies2 -N 2\n    Primary pattern:  ^Dsfred\n    Secondary pattern:  ^Ds(?i)fred\n    808101\n    Addr: DsfrEdQDGFf6uYbjmkT2D1cDYoW6m9BD7ga\n    Private key (WIF-encoded): PmQejCoacLSiLes4aj6vnNgRhtwjkKTDtBMkix3qDKrS8CEFhLcyD\n    1898882\n    Woohoo!\n    Addr: Dsfrediud1mTy9MuRHE5XNH4HJg9xhJ5Rts\n    Private key (WIF-encoded): PmQeHrMcmcRQBPqzBiSAnxzmQkj6sP3MdbCQZzeba8gyrwEmM3W4s\n    WIF struct: PmQeHrMcmcRQBPqzBiSAnxzmQkj6sP3MdbCQZzeba8gyrwEmM3W4s\n\nFirst it found an address with \"frEd\" after Ds, then it found \"fred\" and\nstopped searching.\n\nUltimately search for \"decred\" or \"d3cred\". Secondary pattern (report, but don't\nstop), implied by pattern1, is a case-insensitive version of the primary\npattern.  Both patterns may be found anywhere in the address because of the\nleading `.*`.\n\n    $ dcrvanity -pattern1 \".*d[e3]cred\" -pattern2 \".*(?i)d[e3]cred\" -N 3\n    Primary pattern:  ^Ds.*d[e3]cred\n    Secondary pattern:  ^Ds.*(?i)d[e3]cred\n    4382354\n    Addr: Dsg6y9PwYkNj8VUQbLWVcy6qpBtZBDecred\n    Private key (WIF-encoded): Pm---------------------------------------------------\n\nAfter 4382354 iterations, it found the address\nDsg6y9PwYkNj8VUQbLWVcy6qpBtZB**Decred**. The corresponding private key is\nshown WIF-encoded, as this is the format required by `importprivkey`. I have\nredacted the private key for this address since I rather like it.\n\nNow say we want an address with no capital letters.  That would be cool.  and\nperhaps you'd also be interested in addresses with capital \"J\" and \"C\".\n\n    $ dcrvanity -pattern1 \"[a-z1-9]*$\" -pattern2 \"[a-z1-9JC]*$\" -pat1implies2 -N 3\n    dcrvanity version 0.1.0-beta\n    Primary pattern:  ^Ds[a-z1-9]*$\n    Secondary pattern:  ^Ds[a-z1-9JC]*$\n    12755537\n    Addr: Dsjsrm5zi557982394xqza3JbpmcCd9utni\n    Private key (WIF-encoded): PmQdy9wA1QmLiLGM9yVGr8S1qXVD2oModaHfB9W1sLDLCfFVgoLTi\n    \u003csnip, lots more secondary matches\u003e\n    Woohoo!\n    Addr: Dsjn9te4bhf7uoaujotjghp3v9u82tomzbi\n    Private key (WIF-encoded):  PmQemTyD7D7f1uTs1au5AZeMeN2qjZ9EUyBjAGp1LobCJ5wtT1zdX\n\nMake any regexp patterns, but keep in mind the computational burden of complex\npatterns, as well as the character restrictions mentioned in [First Character\nRestrictions](#first-character-restrictions).\n\n [1]: https://en.bitcoin.it/wiki/Address_reuse\n [2]: http://bitcoin.stackexchange.com/questions/20621/is-it-safe-to-reuse-a-bitcoin-address/42380#42380\n [3]: https://docs.decred.org/faq/wallets-and-seeds/#7-how-do-i-import-a-key-that-is-in-wallet-import-format-wif\n [4]: https://en.bitcoin.it/wiki/Base58Check_encoding\n [5]: https://forum.decred.org/threads/personalize-your-address-with-vanitygen.253/#post-3077\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchappjc%2Fdcrvanity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchappjc%2Fdcrvanity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchappjc%2Fdcrvanity/lists"}