Skip to content

Commit

Permalink
auto-commit: gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
sshmatrix committed Feb 3, 2024
1 parent 641d2e2 commit 384e403
Show file tree
Hide file tree
Showing 12 changed files with 1,437 additions and 6 deletions.
Empty file added .nojekyll
Empty file.
6 changes: 3 additions & 3 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<div id="dynamic">
<button
class="button-main"
onclick="window.location.href='https://lite.namesys.eth.limo'"
onclick="window.location.href='https://lite.namesys.xyz'"
>
<div class="row">
<span class="material-icons-round rock" id="adapt">crib</span
Expand All @@ -53,7 +53,7 @@
</button>
<button
class="button-main"
onclick="window.location.href='https://app.namesys.eth.limo'"
onclick="window.location.href='https://app.namesys.xyz'"
>
<div class="row">
<span class="material-icons emphasis" id="adapt">dynamic_form</span
Expand Down Expand Up @@ -85,7 +85,7 @@ <h2>NameSys</h2>
<div id="left">
<button
class="link"
onclick="window.location.href='https://lite.namesys.eth.limo'"
onclick="window.location.href='https://lite.namesys.xyz'"
>
<div>
<span class="material-icons" style="color: #ff5f43">settings</span>
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"homepage": "https://namesys.xyz",
"description": "NameSys/CCIP2 Home Page",
"scripts": {
"xyz-deploy": "rm out/* out/.* > /dev/null 2>&1; cp -r *.* out/",
"eth-deploy": "rm out/* out/.* > /dev/null 2>&1; cp -r *.* out/ && node postbuild/replacerETH.js",
"ghp-deploy": "rm out/* > /dev/null 2>&1; touch out/.nojekyll && cp -r *.* out/ && git add -f out && git commit -S -m 'auto-commit: gh-pages' && git subtree push --prefix out origin gh-pages"
"xyz-deploy": "rm out/* out/.* > /dev/null 2>&1; cp -r *.* out/; cp -r readme out/",
"eth-deploy": "rm out/* out/.* > /dev/null 2>&1; cp -r *.* out/; cp -r readme out/ && node postbuild/replacerETH.js",
"ghp-deploy": "rm out/* > /dev/null 2>&1; touch out/.nojekyll && cp -r *.* out/; cp -r readme out/ && git add -f out && git commit -S -m 'auto-commit: gh-pages' && git subtree push --prefix out origin gh-pages"
},
"devDependencies": {
"replace-in-file": "^7.1.0"
Expand Down
163 changes: 163 additions & 0 deletions readme/GUIDE.md
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">

&nbsp;
<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.

&nbsp;
<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`.

&nbsp;
<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
&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Options.png" width="500">
&nbsp;

- `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`.

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/TXN1.png" width="700">
&nbsp;

- 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.

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Password.png" width="500">
&nbsp;

- 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.

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/SIGN1.png" width="700">
&nbsp;

- Confirming `SIGN 1` will trigger transaction `TXN 2` which will set the on-chain IPNS Recordhash generated using `SIGN 1`

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/TXN2.png" width="700">
&nbsp;

Confirmtion of `TXN 2` completes the setup process and you are now ready to use off-chain records for your selected ENS domain! 🥳

&nbsp;
<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`.

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/Ownerhash.png" width="400">
&nbsp;

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).

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/ownerhashDialog.png" width="400">
&nbsp;

> 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!
&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/enterValues.png" width="500">
&nbsp;

- 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.

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/SIGN2.png" width="700">
&nbsp;

- 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.

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/SIGN3.png" width="700">
&nbsp;

> 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!

&nbsp;
<img src="https://raw.githubusercontent.com/namesys-eth/ccip2-eth-resources/main/graphics/guide/gasSavings.png" width="400">
&nbsp;

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)
Loading

0 comments on commit 384e403

Please sign in to comment.