-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* restructure org * remove unused license * empty readme * update lock * move examples * restructure coverage badge (#261) * Update coverage badge * Retain NameGuard intro docs * Display coverage badge from active branch * Fix typo --------- Co-authored-by: kwrobel.eth <djstrong@gmail.com> Co-authored-by: github-actions <actions@github.com> Co-authored-by: lightwalker.eth <126201998+lightwalker-eth@users.noreply.github.com>
- Loading branch information
1 parent
dd6f9af
commit 6f795b5
Showing
108 changed files
with
7,631 additions
and
4,776 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,110 +1,3 @@ | ||
# NameHash NameGuard | ||
# Namekit | ||
|
||
![Tests](https://github.com/namehash/nameguard/actions/workflows/ci_api.yml/badge.svg?branch=main) | ||
![Coverage](https://raw.githubusercontent.com/namehash/nameguard/main/coverage_badge.svg) | ||
|
||
The NameHash team is proud to present NameGuard, a tool for identifying and preventing malicious use of ENS names. | ||
|
||
- Offers multiple levels of protection | ||
- Impersonated name detection | ||
- Confusable grapheme detection | ||
- International accessibility checks | ||
- Rendering checks for different fonts | ||
- ENSIP-15 verification with detailed explanations and auto-suggestions (provided by [ens-normalize-python](https://github.com/namehash/ens-normalize-python)) | ||
- Punycode and DNS hostname compatibility checks | ||
- and more! | ||
- Provides a unified rating system for entire names, as well as detailed explanations for each check | ||
- :green_circle: Pass: no issues found | ||
- :yellow_circle: Warn: potential issues found | ||
- :red_circle: Fail: serious issues found | ||
- Supports many use cases | ||
- Standalone Python library ([PyPI](https://pypi.org/project/nameguard/)) | ||
- ASGI web server | ||
- [Amazon AWS Lambda](https://aws.amazon.com/lambda/) handler | ||
|
||
⚠️ **This SDK is BETA. Things will change based on the community feedback.** | ||
|
||
## Getting Started | ||
|
||
### [Try the official web app](https://nameguard.io) | ||
|
||
### Using the public API | ||
|
||
NameGuard is hosted at <https://api.nameguard.io> | ||
|
||
You can make a basic request to the API like this: | ||
|
||
```bash | ||
curl https://api.nameguard.io/inspect-name/mainnet/nick.eth | ||
``` | ||
|
||
The API documentation is available at <https://api.nameguard.io/redoc> or <https://api.nameguard.io/docs>. | ||
|
||
### Using the SDK | ||
|
||
Quickstart: | ||
|
||
```bash | ||
npm install @namehash/nameguard | ||
``` | ||
|
||
```ts | ||
import { nameguard } from "@namehash/nameguard"; | ||
await nameguard.inspectName("nick.eth"); | ||
``` | ||
|
||
See the [SDK README](./packages/sdk/README.md) for more details. | ||
|
||
### Using the Python library | ||
|
||
Quickstart: | ||
|
||
```bash | ||
pip install nameguard | ||
``` | ||
|
||
```python | ||
from nameguard import NameGuard | ||
ng = NameGuard() | ||
await ng.inspect_name(network_name='mainnet', name='nick.eth') | ||
``` | ||
|
||
See the [NameGuard Python README](./api/README.md) for more details. | ||
|
||
### Running your own NameGuard instance | ||
|
||
See the [NameGuard Python README](./api/README.md) for more details. | ||
|
||
## NameGuard Specification | ||
|
||
### Checks | ||
|
||
1. **Impersonation**: Detects names that could be trying to impersonate a different name by using similar characters. Example: [`vitalìk.eth`](https://nameguard.io/inspect/vitalìk.eth) | ||
|
||
2. **Confusables**: Detects characters that can be confused with other characters. Example: [`vitalìk.eth`](https://nameguard.io/inspect/vitalìk.eth) | ||
|
||
3. **Font Support**: Checks if the characters in the name are supported by commonly used fonts. Example: [`🛈.eth`](https://nameguard.io/inspect/🛈.eth) | ||
|
||
4. **Invisibles**: Detects invisible characters. Example: [`888.eth`](https://nameguard.io/inspect/888.eth) | ||
|
||
5. **Typing Difficulty**: Detects names that are difficult to type on some keyboards. Example: [`żółć.eth`](https://nameguard.io/inspect/żółć.eth) | ||
|
||
6. **Mixed Scripts**: Detects names that contain characters from multiple scripts or alphabets. Example: [`あア.eth`](https://www.nameguard.io/inspect/あア.eth) | ||
|
||
7. **Name Wrapper**: Checks if the name is supported by the new ENS Name Wrapper. Example: [`abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd.eth`](https://nameguard.io/inspect/abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd.eth) | ||
|
||
8. **ENSIP-15**: Checks if the name is normalized according to ENSIP-15. Example: [`bitсoin.eth`](https://nameguard.io/inspect/bitсoin.eth) | ||
|
||
9. **Punycode**: Checks if the name is compatible with Punycode encoding. Example: [`ab--abc.eth`](https://www.nameguard.io/inspect/ab--abc.eth) | ||
|
||
10. **Unknown Labels**: Checks if the name contains unknown labels. Example: [`[5bc926fc40cc7c49e0df6dddf26e4dc7b9d6d32f4a55d4f0670320dbf414afd2].byongdok.eth`](https://nameguard.io/inspect/[5bc926fc40cc7c49e0df6dddf26e4dc7b9d6d32f4a55d4f0670320dbf414afd2].byongdok.eth) | ||
|
||
11. **Decentralized Name**: Checks if the name is decentralized (unruggable). Example: [`example.com`](https://www.nameguard.io/inspect/example.com) | ||
|
||
12. **NameWrapper fuses**: Checks that the NameWrapper configuration of a name is safe. | ||
|
||
## License | ||
|
||
Licensed under the MIT License, Copyright © 2023-present [NameHash Labs](https://namehashlabs.org). | ||
|
||
See [LICENSE](./LICENSE) for more information. | ||
NameKit contains multiple projects, including [NameGuard](./nameguard.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.