{"id":19269555,"url":"https://github.com/status-im/ens-usernames","last_synced_at":"2025-07-15T04:37:20.643Z","repository":{"id":50691846,"uuid":"147541002","full_name":"status-im/ens-usernames","owner":"status-im","description":"DApp to register usernames for Status Network","archived":false,"fork":false,"pushed_at":"2024-06-24T17:29:48.000Z","size":2083,"stargazers_count":19,"open_issues_count":30,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-04T01:58:12.922Z","etag":null,"topics":["dapp","ens","ethereum"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/status-im.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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":"2018-09-05T15:35:30.000Z","updated_at":"2024-06-24T17:29:52.000Z","dependencies_parsed_at":"2024-06-24T19:13:56.155Z","dependency_job_id":"8a4632fa-f60f-4ab5-bc79-051953b2a2ae","html_url":"https://github.com/status-im/ens-usernames","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/status-im/ens-usernames","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Fens-usernames","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Fens-usernames/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Fens-usernames/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Fens-usernames/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/status-im","download_url":"https://codeload.github.com/status-im/ens-usernames/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Fens-usernames/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265402833,"owners_count":23759237,"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":["dapp","ens","ethereum"],"created_at":"2024-11-09T20:20:30.989Z","updated_at":"2025-07-15T04:37:20.621Z","avatar_url":"https://github.com/status-im.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Status ENS Usernames\n\nDApp to register usernames for Status Network, using ENS subnodes as usernames and Public Resolver to configure public\nkey and/or public address.\n\n### Stateofus.eth Terms of name registration\n\n- Funds are deposited for 1 year. Your SNT will be locked, but not spent.\n- After 1 year, the user can release the name for being registered again, and receive their deposit back.\n- Usernames are created as a subdomain of `stateofus.eth` [ENS domain](https://ens.domains/).\n- Usernames not allowed are less then 4 characters, or contained in this list (link to list), or starts with `0x` and\n  more then 12 characters.\n- Revealing a registered not allowed username will result in loss of deposit and removal of username.\n- Users are free to own the subdomains, but they are property of Status Network, and might be subject of new terms.\n- If terms of the contract change—e.g. Status Network makes contract upgrades—the user has the right to get their\n  deposit back and release the username, or do nothing and keep using username as long new contract allows it.\n- User's handle (name) is always secret to network until user reveals it to someone.\n- User's address(es) when associated with a username will be publicly visible.\n\n## Usage\n\nThis is a list of the most frequently needed commands.\n\n### Build\n\nBuild the contracts:\n\n```sh\n$ forge build\n```\n\n### Clean\n\nDelete the build artifacts and cache directories:\n\n```sh\n$ forge clean\n```\n\n### Compile\n\nCompile the contracts:\n\n```sh\n$ forge build\n```\n\n### Coverage\n\nGet a test coverage report:\n\n```sh\n$ forge coverage\n```\n\n### Deploy\n\nDeploy to Anvil:\n\n```sh\n$ forge script script/Deploy.s.sol --broadcast --fork-url http://localhost:8545\n```\n\nFor this script to work, you need to have a `MNEMONIC` environment variable set to a valid\n[BIP39 mnemonic](https://iancoleman.io/bip39/).\n\nFor instructions on how to deploy to a testnet or mainnet, check out the\n[Solidity Scripting](https://book.getfoundry.sh/tutorials/solidity-scripting.html) tutorial.\n\n### Format\n\nFormat the contracts:\n\n```sh\n$ forge fmt\n```\n\n### Gas Usage\n\nGet a gas report:\n\n```sh\n$ forge test --gas-report\n```\n\n### Lint\n\nLint the contracts:\n\n```sh\n$ pnpm lint\n```\n\n#### Fixing linting issues\n\nFor any errors in solidity files, run `forge fmt`. For errors in any other file type, run `pnpm prettier:write`.\n\n### Test\n\nRun the tests:\n\n```sh\n$ forge test\n```\n\n## Deployment Details\n\n| Contract                   | Ropsten Address                            | Mainnet Address                            |\n| -------------------------- | ------------------------------------------ | ------------------------------------------ |\n| ens/ENSRegistry            | 0x112234455c3a32fd11230c42e7bccd4a84e02010 | 0x314159265dd8dbb310642f98f50c066173c1259b |\n| ens/PublicResolver         | 0x29754bADB2640b98F6deF0f52D41418b0d2e0C51 | 0x5FfC014343cd971B7eb70732021E26C35B744cc4 |\n| token/TestToken            | 0xc55cF4B03948D7EBc8b9E8BAD92643703811d162 | 0x744d70fdbe2ba4cf95131626614a1763df805b9e |\n| registry/UsernameRegistrar | 0x028F3Df706c5295Ba283c326F4692c375D14cb68 | 0xDBf9038cf5Aaa030890790dB87E746E00Fc352b3 |\n| common/MerkleProof         | 0x5df00E70AD165D50228DB6d8285fB6EAAc630FD7 | 0x713ED9846463235df08D92B886938651105D3940 |\n| test/MerkleProofWrapper    | 0x58E01078d14142E0370526dFdAE44E4f508c844B | 0x76E55E13C5891a90f7fCA2e1238a6B3463F564e2 |\n| common/SafeMath            | 0x0F9992f7737f9ba3aceD170D4D1259cb2CEcc050 | 0xA115a57952D3337e2a1aB3Cb82bA376EEcDDc469 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatus-im%2Fens-usernames","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatus-im%2Fens-usernames","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatus-im%2Fens-usernames/lists"}