Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 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
Expand Up @@ -19,30 +19,14 @@ export const referenceSidebarTopic = {
label: "What is ENSNode?",
link: "/docs/reference/what-is-ensnode",
},
{
label: "What is the ENS Subgraph?",
link: "/docs/reference/what-is-the-ens-subgraph",
},
{
label: "REST API",
link: "/docs/reference/rest-api",
},
{
label: "Querying Best Practices",
link: "/docs/reference/querying-best-practices",
},
{
label: "ENSNode V2 Notes",
link: "/docs/reference/ensnode-v2-notes",
},
{
label: "Subgraph Compatibility",
link: "/docs/reference/subgraph-compatibility-tooling",
},
{
label: "Indexing ENS-Compatible Names",
link: "/docs/reference/indexing-ens-compatible-onchain-names",
},
{
label: "Mainnet Subnames of Subregistries",
link: "/docs/reference/mainnet-registered-subnames-of-subregistries",
Expand All @@ -51,6 +35,22 @@ export const referenceSidebarTopic = {
label: "Subgraph API (Legacy)",
collapsed: true,
items: [
{
label: "What is the ENS Subgraph?",
link: "/docs/reference/subgraph-legacy/what-is-the-ens-subgraph",
},
{
label: "Subgraph API",
link: "/docs/reference/subgraph-legacy/subgraph-api",
},
{
label: "Querying Best Practices",
link: "/docs/reference/subgraph-legacy/querying-best-practices",
},
{
label: "Subgraph Compatibility Tooling",
link: "/docs/reference/subgraph-legacy/subgraph-compatibility-tooling",
},
{
label: "With ENSjs",
link: "/docs/reference/subgraph-legacy/with-ensjs",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,33 @@ NameHash Labs provides freely available hosted instances for ENS developers look

These instances are provided free of charge with no API key required, have no rate limiting, and are maintained and monitored by the NameHash Labs team.

:::caution[No Uptime / Performance Guarantees]
These hosted instances are provided free of charge to the ENS community, and while we strive for strong uptime and performance, neither of these can be guaranteed. By using these instances you accept the possibility of downtime, degraded performance, or other unforeseen events. If you'd like to run ENSNode in production, consider [hosting your own ENSNode instance](/docs/self-host).
:::
### Available instance configurations

## Available ENSNode Instances
Each ENSNode hosted instance is configured for a specific ENS namespace and activated ENSNode plugins. The ENS namespace is the source of truth for the data indexed by the instance, and the activated ENSNode plugins determine the specific data model for indexing and querying.
Comment thread
tk-o marked this conversation as resolved.
Outdated

Each ENS namespace is defined by onchain state as per implemented ENS protocol version (i.e. ENS V1, ENS V2). Currently, ENSNode supports the following ENS namespaces:
- ENS V2 Sepolia
- ENS V1 Mainnet
- ENS V1 Sepolia

### ENS V2 instances

These instances demonstrate the latest ENS V2 support in ENSNode.

#### ENSNode 'v2 Sepolia'

<HostedEnsNodeInstances
instanceURL="https://api.v2-sepolia.ensnode.io"
connectWithENSAdminURL="https://admin.ensnode.io/connection?connection=https%3A%2F%2Fapi.v2-sepolia.ensnode.io"
namespace="sepolia-v2"
plugins="ensv2, protocol-acceleration"
purpose="Preview of ENSNode's support for the ENS V2 Sepolia namespace."
Comment thread
tk-o marked this conversation as resolved.
Outdated
/>

## ENS V1 Instances

These instances demonstrate the ENS V1 support in ENSNode.
Comment thread
tk-o marked this conversation as resolved.
Outdated

The key differences between these hosted deployments is the ENS deployment being indexed (mainnet vs a testnet) and the list of ENSNode plugins that are activated. See the table below for details.
Main difference from client perspective is chain being indexed and list of plugins being handled. Here is the table listing differences between those.

### Alpha-style Deployments

Expand All @@ -32,8 +51,8 @@ These ENSNode instances focus on pushing the boundaries of what's possible with
instanceURL="https://api.alpha.ensnode.io"
connectWithENSAdminURL="https://admin.ensnode.io/connection?connection=https%3A%2F%2Fapi.alpha.ensnode.io"
namespace="mainnet"
plugins="subgraph, basenames, lineanames, threedns, protocol-acceleration, registrars"
purpose="Demonstration of ENSNode's multichain ENS indexing capability for the ENS namespace rooted on Mainnet. Provides a superset of the data indexed by the ENS Subgraph. Offers a preview of ENS Protocol Acceleration."
plugins="subgraph, basenames, lineanames, threedns, ensv2, protocol-acceleration, registrars, tokenscope"
purpose="Demonstration of ENSNode's multichain ENS indexing capability for the ENS V1 namespace rooted on Mainnet. Provides a superset of the data indexed by the ENS Subgraph. Offers a preview of ENS Protocol Acceleration."
Comment thread
tk-o marked this conversation as resolved.
Outdated
/>

#### ENSNode 'Alpha-Sepolia'
Expand All @@ -42,8 +61,8 @@ These ENSNode instances focus on pushing the boundaries of what's possible with
instanceURL="https://api.alpha-sepolia.ensnode.io"
connectWithENSAdminURL="https://admin.ensnode.io/connection?connection=https%3A%2F%2Fapi.alpha-sepolia.ensnode.io"
namespace="sepolia"
plugins="subgraph, basenames, lineanames, protocol-acceleration, registrars"
purpose="Demonstration of ENSNode's multichain ENS indexing capability for the ENS namespace rooted on Sepolia. Provides a superset of the data indexed by the ENS Subgraph. Offers a preview of ENS Protocol Acceleration."
plugins="subgraph, basenames, lineanames, registrars, ensv2,protocol-acceleration"
Comment thread
tk-o marked this conversation as resolved.
Outdated
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
purpose="Demonstration of ENSNode's multichain ENS indexing capability for the ENS V1 namespace rooted on Sepolia. Provides a superset of the data indexed by the ENS Subgraph. Offers a preview of ENS Protocol Acceleration."
Comment thread
tk-o marked this conversation as resolved.
Outdated
/>

### Subgraph-style Deployments
Expand All @@ -70,20 +89,6 @@ These ENSNode instances focus on maximizing backwards compatibility with the ENS
purpose="Demonstration of ENSNode's backwards compatibility with the ENS Subgraph. Provides 1:1 Subgraph compatible data on Sepolia."
/>

### ENS V2 Deployments

These instances demonstrate the latest ENSv2 support in ENSNode.

#### ENSNode 'v2 Sepolia'

<HostedEnsNodeInstances
instanceURL="https://api.v2-sepolia.ensnode.io"
connectWithENSAdminURL="https://admin.ensnode.io/connection?connection=https%3A%2F%2Fapi.v2-sepolia.ensnode.io"
namespace="sepolia"
plugins="ensv2, protocol-acceleration"
purpose="Preview of ENSNode's ENSv2 support on the Sepolia deployment of ENSv2."
/>

## Endpoints

For more details on how to use these instances, refer to the [ENSNode Quickstart](/docs/integrate).
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,5 @@ Go deeper into mastery of ENSNode, including terminology and becoming an active
<LinkCard title="Terminology" href="/docs/reference/terminology" description="Terminology for ENS development used across these docs." />
<LinkCard title="Hosted ENSNode instances" href="/docs/integrate/hosted-instances" description="Public NameHash-hosted URLs (alpha, mainnet, Sepolia, ENSv2 previews)." />
<LinkCard title="REST API" href="/docs/reference/rest-api" description="ENSNode has additional APIs beyond the ENS Omnigraph and Subgraph. Explore additional OpenAPI-backed HTTP APIs." />
<LinkCard title="Subgraph compatibility" href="/docs/reference/subgraph-compatibility-tooling" description="Tooling that guarantees the full backwards-compatibility of our (now deprecated!) ENS Subgraph API implementation." />
<LinkCard title="Contributing" href="/docs/reference/contributing" description="Learn how to contribute to the development of ENSNode and related projects." />
</CardGrid>

This file was deleted.

94 changes: 0 additions & 94 deletions docs/ensnode.io/src/content/docs/docs/reference/rest-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,61 +7,6 @@ sidebar:

import { LinkCard } from "@astrojs/starlight/components";

Comment thread
tk-o marked this conversation as resolved.
## Subgraph API
ENSNode exposes a Subgraph-Compatible GraphQL endpoint at `/subgraph`.

:::note[Subgraph API Compatibility Reference]
For details on subgraph compatibility, see the Subgraph Compatibility documentation.

<LinkCard
href="/docs/reference/what-is-the-ens-subgraph"
title="Subgraph Compatibility"
/>
:::

### GraphiQL Playground

To explore the schema and run queries, use the GraphiQL Playground below.

<LinkCard
href="https://api.alpha.ensnode.io/subgraph"
title="Subgraph-compatible GraphiQL Playground"
/>

### GraphQL Examples

Fetch data about the three most recently-created domains.

```gql
{
domains(orderBy: createdAt, orderDirection: desc, first: 3) {
name
expiryDate
}
}
```

```json
{
"data": {
"domains": [
{
"name": "ensanguo.eth",
"expiryDate": "1758170255"
},
{
"name": "fiffer.eth",
"expiryDate": "2041994243"
},
{
"name": "rifaisicilia.eth",
"expiryDate": "1758170039"
}
]
}
}
```

## Config API

The Config API provides a complete view of an ENSNode instance's public
Expand Down Expand Up @@ -230,42 +175,3 @@ When you include this parameter it influences the HTTP response code as follows:

- **Success (200 OK)**: The latest indexed block of each chain is guaranteed within the requested distance from realtime.
- **Service Unavailable (503)**: The latest indexed block of each chain is NOT guaranteed within the requested distance from realtime.


## Registrar Actions API

Query the "logical registrar actions" performed on indexed
subregistries with the Registrar Actions API. This endpoint returns a list
of "logical registrar actions", such as "registration" or "renewal".

Each "logical registrar action" refers to:
- ID of the action,
- type of the action,
- incremental duration,
- registrant address,
- one registration lifecycle record,
- pricing details (optionally),
- referral details (optionally),
- onchain transaction details (block number, timestamp, transaction hash),
- event IDs that have ever contributed to the "logical registrar action" record.

Each registration lifecycle record refers to:
- subregistry that manages this Registration Lifecycle,
- node (namehash) of the FQDN of the domain the registration lifecycle is
associated with,
- expiry date which identifies when the Registration Lifecycle is scheduled
to expire.

Each subregistry includes:
- subregistry account ID which identifies the chainId and address of
the associated subregistry smart contract,
- node (namehash) of the name the subregistry manages subnames of.


**Endpoint:** `GET /api/registrar-actions`
**Endpoint with custom results count limit:** `GET /api/registrar-actions?limit=5`
**Endpoint with results sourced for the `namehash('eth')` parent node:** `GET /api/registrar-actions/0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae`

### Example response

TDB
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: Subgraph API
sidebar:
order: 2
---

import { LinkCard } from "@astrojs/starlight/components";

## Subgraph API
ENSNode exposes a Subgraph-Compatible GraphQL endpoint at `/subgraph`.

:::note[Subgraph API Compatibility Reference]
For details on subgraph compatibility, see the Subgraph Compatibility documentation.

<LinkCard
href="/docs/reference/subgraph-legacy/what-is-the-ens-subgraph#self-hosted-ensnode-instance-configuration-for-ens-subgraph-compatibility"
title="Subgraph Compatibility"
/>
:::
Comment thread
tk-o marked this conversation as resolved.
Outdated

### GraphiQL Playground

To explore the schema and run queries, use the GraphiQL Playground below.

<LinkCard
href="https://api.alpha.ensnode.io/subgraph"
Comment thread
tk-o marked this conversation as resolved.
Outdated
title="Subgraph-compatible GraphiQL Playground"
/>

### GraphQL Examples

Fetch data about the three most recently-created domains.

```gql
{
domains(orderBy: createdAt, orderDirection: desc, first: 3) {
name
expiryDate
}
}
```

```json
{
"data": {
"domains": [
{
"name": "ensanguo.eth",
"expiryDate": "1758170255"
},
{
"name": "fiffer.eth",
"expiryDate": "2041994243"
},
{
"name": "rifaisicilia.eth",
"expiryDate": "1758170039"
}
]
}
}
```

Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ ENSNode has developed tooling to verify subgraph compatibility and ease migratio

<LinkCard
title="Subgraph Compatibility Tooling"
href="/docs/reference/subgraph-compatibility-tooling"
href="/docs/reference/subgraph-legacy/subgraph-compatibility-tooling"
/>

## Subgraph-Compatible GraphQL API Reference
Expand Down
6 changes: 6 additions & 0 deletions docs/ensnode.io/src/content/docs/docs/self-host/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ docker compose -f docker/docker-compose.devnet.yml up -d
href="https://github.com/namehash/ensnode/blob/main/docker"
/>

<LinkCard
title="Building ENSNode Docker Images"
description="Learn about building docker images for ENSNode services."
href="/docs/reference/contributing/building"
/>
Comment thread
tk-o marked this conversation as resolved.
Outdated

:::note[Port Mappings]
Note that while the default `docker/docker-compose.yml` exposes each container's port to the host machine (useful for development), you may only wish to expose ENSApi's `4334` and avoid exposing services like ENSRainbow, ENSAdmin, and Postgres to the wider internet.
:::
Loading
Loading