Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
import { Aside } from "@astrojs/starlight/components";
const { namespace, isEnsV2Launched = false } = Astro.props;
const ensSubgraphCorrectnessMessage = isEnsV2Launched
? `ENSv2 has launched on the <code>${namespace}</code> ENS namespace. This means the legacy ENS Subgraph no longer returns reliable data.`
: `ENSv2 launches soon! As soon as ENSv2 launches on the <code>${namespace}</code> ENS namespace, the legacy ENS Subgraph will no longer return reliable data.`;
Comment thread
tk-o marked this conversation as resolved.
const title = isEnsV2Launched
? "ENSv2 launch completed. Subgraph API now unreliable."
: "ENSv2 launches soon. Subgraph API soon unreliable.";
Comment on lines +8 to +9
---

<Aside type="danger" title={title}>
<span set:html={ensSubgraphCorrectnessMessage} /> Transition your apps now to the new <a
href="/docs/integrate/omnigraph">ENS Omnigraph API</a
> to be ENSv2 ready.
</Aside>
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,14 @@ const hostedEnsNodeVersion = ACTIVE_OMNIGRAPH_VERSION;
<td set:html={plugins} />
</tr>
<tr>
<td>ENS APIs</td>
<td>ENSApi Services</td>
<td>
<dl>
<dt>ENS Omnigraph API</dt>
<dt>ENS Omnigraph API <slot name="ens-omnigraph-api-icon" /></dt>
<dd class="pl-0"><slot name="ens-omnigraph-api" /></dd>
<dt>ENS Protocol Acceleration</dt>
<dt>ENS Protocol Acceleration <slot name="ens-protocol-acceleration-icon" /></dt>
<dd class="pl-0"><slot name="ens-protocol-acceleration" /></dd>
<dt>ENS Subgraph API</dt>
<dt>ENS Subgraph API <slot name="ens-subgraph-api-icon" /></dt>
<dd class="pl-0"><slot name="ens-subgraph-api" /></dd>
</dl>
</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ const { uid } = Astro.props;

if (integrationTabsEl) {
integrationTabsEl.addEventListener("click", (e) => {
const btn =
e.target instanceof Element ? e.target.closest("[data-integration-tab]") : null;
const btn = e.target instanceof Element ? e.target.closest("[data-integration-tab]") : null;
if (btn && integrationTabsEl.contains(btn)) {
activateIntegration(btn.dataset.integrationTab);
}
Expand Down
60 changes: 49 additions & 11 deletions docs/ensnode.io/src/content/docs/docs/hosted-instances.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ sidebar:
import { LinkCard } from "@astrojs/starlight/components";
import HostedEnsNodeInstance from "@components/molecules/HostedEnsNodeInstance.astro";
import HostedInstanceSdkVersionWarning from "@components/molecules/HostedInstanceSdkVersionWarning.astro";
import EnsSubgraphCorrectnessPostEnsV2Launch from "@components/molecules/EnsSubgraphCorrectnessPostEnsV2Launch.astro";

export const subgraphCompatibilityApiLevel = `<em>API-level Subgraph Compatibility.</em> This ENSNode instance has a fully backwards compatible ENS Subgraph GraphQL API. However, additional plugins have been activated which index a superset of data into the subgraph data model in ENSDb. This superset of indexed data means that the data returned for some ENS Subgraph API queries may be different. <em>NOTE:</em> As soon as ENSv2 launches the ENS Subgraph will no longer return correct data. Transition your apps now to the new ENS Omnigraph API to be ENSv2 ready.`;
export const subgraphCompatibilityFull = `<em>Full Subgraph Compatibility.</em> This ENSNode instance has a fully backwards compatible ENS Subgraph GraphQL API at both the API-level and the data-level. We have exhaustively tested and verified that every data record returned by this ENSNode instance's ENS Subgraph API is byte-for-byte identical with The Graph's ENS Subgraph API. <em>NOTE:</em> As soon as ENSv2 launches the ENS Subgraph will no longer return correct data. Transition your apps now to the new ENS Omnigraph API to be ENSv2 ready.`;
export const subgraphCompatibilityApiLevel = `<em>API-level Subgraph Compatibility.</em> This ENSNode instance has a fully backwards compatible ENS Subgraph GraphQL API. However, additional plugins have been activated which index a superset of data into the subgraph data model in ENSDb. This superset of indexed data means that the data returned for some ENS Subgraph API queries may be different.`;
export const subgraphCompatibilityFull = `<em>Full Subgraph Compatibility.</em> This ENSNode instance has a fully backwards compatible ENS Subgraph GraphQL API at both the API-level and the data-level. We have exhaustively tested and verified that every data record returned by this ENSNode instance's ENS Subgraph API is byte-for-byte identical with The Graph's ENS Subgraph API.`;
export const omnigraphForEnsV1 = `<em>Activated.</em> Demonstrates the ENS Omnigraph's ability to support ENSv1 only before ENSv2 launches and both ENSv1 and ENSv2 are concurrently active. Until ENSv2 launches on this namespace, only ENSv1 domains will be available. As soon as ENSv2 launches on this namespace both ENSv1 and ENSv2 domains will be available.`;
export const omnigraphForEnsV1AndEnsV2 = `<em>Activated.</em> Powered by a polymorphic GraphQL API with native support for both ENSv1 and ENSv2. When ENSv2 launches in Summer 2026, data from two protocol versions coexist — and the ENS Omnigraph API will keep your app working against both, at the same time, with no code changes. Domains from ENSv1 and ENSv2 are indexed concurrently and exposed through a unified schema.`;
export const omnigraphUnactivated = `<em>Not activated.</em> This ENSNode instance optimizes for maximum compatibility with the ENS Subgraph. Therefore it exclusively activates the <em>subgraph</em> plugin and does not activate the <em>unigraph</em> plugin that the ENS Omnigraph API requires.`;
Expand All @@ -33,10 +34,17 @@ Each ENS namespace is associated with a particular ENS Root Registry deployment,

ENSNode supports all of the following ENS namespaces:

- `mainnet` (currently ENSv1 only and not also ENSv2 yet)
- `sepolia` (currently ENSv1 only and not also ENSv2 yet)
- `sepolia-v2` (now ENSv1 + ENSv2 — An _all new_ deployment of ENS to Sepolia that is already upgraded to ENSv1 + ENSv2 and is independent of the traditional `sepolia` ENS namespace listed above which currently remains ENSv1 only)
- `ens-test-env` (now ENSv1 + ENSv2 — A deployment of ENSv1 + ENSv2 to a local Anvil chain for development and testing. For details see https://github.com/ensdomains/ens-test-env and https://github.com/ensdomains/contracts-v2). Teams working on the core ENS protocol and infrastructure such as ENS Labs and NameHash Labs are using this ENSNode configuration to support ENSv2 development.
- `mainnet`
- Currently ENSv1 only and not also ENSv2 yet.
- `sepolia`
- Currently ENSv1 only and not also ENSv2 yet.
- `sepolia-v2`
- Now ENSv1 + ENSv2 — An _all new_ deployment of ENS to Sepolia that is already upgraded to ENSv1 + ENSv2 and is independent of the traditional `sepolia` ENS namespace listed above which currently remains ENSv1 only.
- `ens-test-env`
- Now ENSv1 + ENSv2 — A deployment of ENSv1 + ENSv2 to a local Anvil chain for development and testing.
:::note[About the ens-test-env]
For details see [ens-test-env](https://github.com/ensdomains/ens-test-env) and [contracts-v2](https://github.com/ensdomains/contracts-v2). Teams working on the core ENS protocol and core ENS infrastructure such as ENS Labs and NameHash Labs are using this ENSNode configuration to support ENSv2 development.
:::

More details about ENS namespaces can be found inside [ENSNode's datasources package](https://github.com/namehash/ensnode/tree/main/packages/datasources).

Expand All @@ -63,10 +71,16 @@ The `sepolia-v2` namespace is undergoing active development by the ENS Labs team
ensVersions="ENSv1 + ENSv2 (concurrently activated together)"
plugins="<em>unigraph</em>, <em>protocol-acceleration</em>, <em>subgraph</em>"
>
<Fragment slot="ens-omnigraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-omnigraph-api" set:html={omnigraphForEnsV1AndEnsV2} />

<Fragment slot="ens-subgraph-api" set:html={subgraphCompatibilityApiLevel} />
<Fragment slot="ens-subgraph-api-icon" set:text={"🚨"} />
<Fragment slot="ens-subgraph-api">
<span set:html={subgraphCompatibilityApiLevel} />
<EnsSubgraphCorrectnessPostEnsV2Launch namespace="sepolia-v2" isEnsV2Launched={true} />
Comment thread
tk-o marked this conversation as resolved.
</Fragment>

<Fragment slot="ens-protocol-acceleration-icon" set:text={"✅"} />
<Fragment slot="ens-protocol-acceleration" set:html={ensProtocolAccelerationAvailable} />
</HostedEnsNodeInstance>

Expand All @@ -87,10 +101,16 @@ These ENSNode instances do not constrain themselves to exclusively activating th
ensVersions="ENSv1 only (not also ENSv2 yet)"
plugins="<em>unigraph</em>, <em>protocol-acceleration</em>, <em>subgraph</em>, basenames, lineanames, threedns, registrars, tokenscope"
>
<Fragment slot="ens-omnigraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-omnigraph-api" set:html={omnigraphForEnsV1} />

<Fragment slot="ens-subgraph-api" set:html={subgraphCompatibilityApiLevel} />
<Fragment slot="ens-subgraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-subgraph-api">
<span set:html={subgraphCompatibilityApiLevel} />
<EnsSubgraphCorrectnessPostEnsV2Launch namespace="mainnet" isEnsV2Launched={false} />
Comment thread
tk-o marked this conversation as resolved.
</Fragment>

<Fragment slot="ens-protocol-acceleration-icon" set:text={"✅"} />
<Fragment slot="ens-protocol-acceleration" set:html={ensProtocolAccelerationAvailable} />
</HostedEnsNodeInstance>

Expand All @@ -103,10 +123,16 @@ These ENSNode instances do not constrain themselves to exclusively activating th
ensVersions="ENSv1 only (not also ENSv2 yet)"
plugins="<em>unigraph</em>, <em>protocol-acceleration</em>, <em>subgraph</em>, basenames, lineanames, registrars"
>
<Fragment slot="ens-omnigraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-omnigraph-api" set:html={omnigraphForEnsV1} />

<Fragment slot="ens-subgraph-api" set:html={subgraphCompatibilityApiLevel} />
<Fragment slot="ens-subgraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-subgraph-api">
<span set:html={subgraphCompatibilityApiLevel} />
<EnsSubgraphCorrectnessPostEnsV2Launch namespace="sepolia" isEnsV2Launched={false} />
</Fragment>
Comment thread
tk-o marked this conversation as resolved.

<Fragment slot="ens-protocol-acceleration-icon" set:text={"✅"} />
<Fragment slot="ens-protocol-acceleration" set:html={ensProtocolAccelerationAvailable} />
</HostedEnsNodeInstance>

Expand All @@ -123,10 +149,16 @@ These ENSNode instances focus on maximizing backwards compatibility with the ENS
ensVersions="ENSv1 only (not also ENSv2 yet)"
plugins="<em>subgraph</em>"
>
<Fragment slot="ens-omnigraph-api-icon" set:text={"❌"} />
<Fragment slot="ens-omnigraph-api" set:html={omnigraphUnactivated} />

<Fragment slot="ens-subgraph-api" set:html={subgraphCompatibilityFull} />
<Fragment slot="ens-subgraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-subgraph-api">
<span set:html={subgraphCompatibilityFull} />
<EnsSubgraphCorrectnessPostEnsV2Launch namespace="mainnet" isEnsV2Launched={false} />
</Fragment>
Comment thread
tk-o marked this conversation as resolved.

<Fragment slot="ens-protocol-acceleration-icon" set:text={"❌"} />
<Fragment slot="ens-protocol-acceleration" set:html={ensProtocolAccelerationUnavailable} />
</HostedEnsNodeInstance>

Expand All @@ -139,10 +171,16 @@ These ENSNode instances focus on maximizing backwards compatibility with the ENS
ensVersions="ENSv1 only (not also ENSv2 yet)"
plugins="<em>subgraph</em>"
>
<Fragment slot="ens-omnigraph-api-icon" set:text={"❌"} />
<Fragment slot="ens-omnigraph-api" set:html={omnigraphUnactivated} />

<Fragment slot="ens-subgraph-api" set:html={subgraphCompatibilityFull} />
<Fragment slot="ens-subgraph-api-icon" set:text={"✅"} />
<Fragment slot="ens-subgraph-api">
<span set:html={subgraphCompatibilityFull} />
<EnsSubgraphCorrectnessPostEnsV2Launch namespace="sepolia" isEnsV2Launched={false} />
</Fragment>
Comment thread
tk-o marked this conversation as resolved.

<Fragment slot="ens-protocol-acceleration-icon" set:text={"❌"} />
<Fragment slot="ens-protocol-acceleration" set:html={ensProtocolAccelerationUnavailable} />
</HostedEnsNodeInstance>

Expand Down
Loading