-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
1,437 additions
and
6 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
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 |
---|---|---|
@@ -0,0 +1,163 @@ | ||
# How to NameSys | ||
|
||
### Guide to setting Off-Chain ENS Records on IPFS Network with NameSys | ||
|
||
##### author(s) : [`sshmatrix.eth`](@sshmatrix), [`freetib.eth`](@0xc0de4c0ffee) | ||
|
||
## Prerequisites | ||
|
||
- **OWN** an ENS (sub)domain, whether Legacy or Wrapped. Being a Controller or Manager is not sufficient. | ||
|
||
## NameSys Client | ||
|
||
NameSys Client lets you set Off-Chain Records for your ENS domains. The Client is available on several mirrors: | ||
|
||
- [`NameSys.xyz`](https://namesys.xyz) | ||
- [`NameSys.eth`](https://namesys.eth.limo) | ||
- [`CCIP2.eth`](https://ccip2.eth.limo) | ||
|
||
> Domains with Emojis are not yet supported | ||
## Step 1 | ||
|
||
Connect your Wallet to the Client | ||
|
||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Connect.png" width="900"> | ||
|
||
## Step 2 | ||
|
||
You can now either `Search` for a domain, or go to `MY NAMES` to see all ENS domains in your connected wallet. | ||
|
||
> `MY NAMES` DOES NOT show wrapped domains or subdomains due to our indexing limitations. Please use the search function to query those names | ||
### 2a: `Search` | ||
|
||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Search.png" width="600"> | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Subdomain.png" width="600"> | ||
|
||
### 2b: `MY NAMES` | ||
|
||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/myNames.png" width="600"> | ||
|
||
## Step 3 | ||
|
||
Choose a domain that you wish to set records for by clicking on `EDIT`. You can only set records for domains that you **OWN**. Upon clicking on `EDIT`, you will see the current records and status of your selected domain in the Preview Panel. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Preview.png" width="500"> | ||
|
||
## Step 4 | ||
|
||
To start using NameSys, you must migrate from your current Resolver to the NameSys Resolver (officially called `CCIP2.eth:` [`0x839B3B540A9572448FD1B2335e0EB09Ac1A02885`](https://etherscan.io/address/0x839B3B540A9572448FD1B2335e0EB09Ac1A02885). To do so, simply click on `MIGRATE`. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Migrate.png" width="500"> | ||
|
||
### Step 4a | ||
|
||
You will next see a panel with three choices. These choices represent the kind of decentralised or centralised storage that your records will use. This choice will be set on-chain with a transaction in the next step. | ||
|
||
> NameSys client currently offers only decentralised IPFS storage through the first and second options. Third option of an `HTTP Gateway` is not yet available but it will be available in v2 | ||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Options.png" width="500"> | ||
| ||
|
||
- `RECORDHASH` option is a decentralised IPNS storage which will store the records for your selected domain. One single `RECORDHASH` corresponds to a single ENS domain. This means that the IPNS Recordhash for each domain must be set on-chain. This is not the cheapest solution (despite being significantly cheaper than on-chain records) since Recordhash must be set **at least once per name**. This is not ideal for degens since they possess many names. | ||
|
||
- `OWNERHASH` option is also an IPNS storage but it can contain records for multiple (or all) domains in your wallet. This is clearly very cheap since Ownerhash must be set **only once per wallet**. However, Ownerhash option is somewhat less secure (although not by much) since it is equivalent to putting all your eggs in one basket. Ownerhash option can also be relatively slower when making frequent record updates. Recordhash option in comparison is faster, more secure and one-egg-one-basket scenario. In the end, it is up to the users to choose whether they prefer security over gas costs or otherwise. | ||
|
||
**NOTE:** Ownerhash option will be disabled at the start for all users since no such Ownerhash will be set at the beginning. Ownerhash can be set for your wallet in `UTILS` tab and the steps for it are explained at the end of this document. Let's pretend for now that the user chooses the only available option of `RECORDHASH`. | ||
|
||
### Step 4b | ||
|
||
Upon clicking `RECORDHASH`: | ||
|
||
- Transaction `TXN 1` will be triggered and confirming this will migrate the Resolver to `CCIP2.eth: 0x839B3B540A9572448FD1B2335e0EB09Ac1A02885`. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/TXN1.png" width="700"> | ||
| ||
|
||
- Once `TXN 1` is confirmed, you will be returned to the Preview Panel. You may now click on `SET` next to Storage to set the Recordhash. Upon clicking, you will be prompted to choose your **SECRET** IPNS Key Identifier/`PASSWORD`. This identifier is equivalent to a secret `PASSWORD` for your IPNS Recordhash, and you can replace your Recordhash in the future whenever required by choosing a different `PASSWORD`. **This `PASSWORD` must be kept secret!** You will also be required to enter this `PASSWORD` when updating your off-chain records in the future. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Password.png" width="500"> | ||
| ||
|
||
- Upon entering the identifier, signature `SIGN 1` will be triggered. This signature is required to generate your IPNS Recordhash which will store your off-chain records on IPFS network. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/SIGN1.png" width="700"> | ||
| ||
|
||
- Confirming `SIGN 1` will trigger transaction `TXN 2` which will set the on-chain IPNS Recordhash generated using `SIGN 1` | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/TXN2.png" width="700"> | ||
| ||
|
||
Confirmtion of `TXN 2` completes the setup process and you are now ready to use off-chain records for your selected ENS domain! 🥳 | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Success.png" width="500"> | ||
|
||
## Step 5 | ||
|
||
We had assumed earlier that the user chose the `RECORDHASH` option in **Step 4a**. If a user (degen) has many names in their wallet, they may prefer the cheaper and global `OWNERHASH` option for multiple domains in their wallet. Let's set the `OWNERHASH` option now. To do this, head over to the `UTILS` tab under `MY NAMES`. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Ownerhash.png" width="400"> | ||
| ||
|
||
Here you can set the `OWNERHASH` option by clicking on `SET`. The procedure for this is similar to the Recordhash option and you will be prompted for `SIGN 1` and `TXN 2`. Upon confirmtion of `TXN 2`, the `OWNERHASH` option will become active in the Preview Panel! Now you may set records for your domains in Ownerhash and `TXN 2` won't need to be repeated again for another name (unless the user chooses to explicitly). | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/ownerhashDialog.png" width="400"> | ||
| ||
|
||
> Note 1: When both Ownerhash and Recordhash are set, then Recordhash has the higher preference. Recordhash takes precedence over Ownerhash in case of a conflict. | ||
> Note 2: It is advised to update records on IPNS no more than once per hour to ensure proper record propagation on the IPFS network. NameSys Client enforces this approximate limit. | ||
## Step 6 | ||
|
||
Let's now finally set those damn records! Open the Preview Panel again for domain that is already set up. Irrespective of whether the selected domain has either a Recordhash or the global Ownerhash, you will find the record fields activated. Simply enter the valid values for the records and click on `EDIT`. You may set multiple records simultaneously by clicking any one of the active `EDIT` buttons. | ||
|
||
> Currently, NameSys supports setting `AVATAR`, `ADDRESS`, `CONTENTHASH` only but this list can be extended at zero cost at ny time. We intend to add more records to it soon based on community feedback! | ||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/enterValues.png" width="500"> | ||
| ||
|
||
- Upon clicking `EDIT`, you will again be prompted for the IPNS Key Identifier and then `SIGN 1` will be requested. Confirming `SIGN 1` will trigger signature `SIGN 2`; `SIGN 2` is required to generate the ephemeral ENS Records Signer Key which will sign your records for verification. This steps ensures the safety and sanctity of your records. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/SIGN2.png" width="700"> | ||
| ||
|
||
- Confirming `SIGN 2` will trigger `SIGN 3` for approving the ephemeral Signer generated using `SIGN 2`. `SIGN 3` approval is required by `CCIP2.eth` Resolver to validate the ephemeral Signer. | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/SIGN3.png" width="700"> | ||
| ||
|
||
> NameSys Client also shortly begin offering the option to set the ephemeral Signer on-chain for better security. Using this option will remove the need for `SIGN3`, although it will add to the gas costs. | ||
Upon approving `SIGN 3`, your records will be signed by the ephemeral Signer and pinned to IPFS network via IPNS. On successful setting of off-chain records, your gas savings will be shown on the screen! | ||
|
||
| ||
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/gasSavings.png" width="400"> | ||
| ||
|
||
Congratulations of setting off-chain and secure records on IPFS for your ENS name! 🥳 | ||
|
||
## More Resources | ||
|
||
[`SUMMARY`](https://github.com/namesys-eth/ccip2-eth-resources/blob/main/docs/EASYREAD.md) | ||
|
||
[`FAQ`](https://github.com/namesys-eth/ccip2-eth-resources/blob/main/docs/INTRO.md) | ||
|
||
[`SPECS`](https://github.com/namesys-eth/ccip2-eth-resources/blob/main/docs/README.md) |
Oops, something went wrong.