You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We want the answer for 'which package do i install' to be extremely clear for new/existing developers, and the existing array of packages is a bit unclear. The new branding (enssdk, enskit, enscli, ensskills) is intentionally general-purpose ENS ecosystem branding — these tools are not ENSNode-specific and will be useful to the broader ENS community, but obviously have first-class integration with ENSNode, which likely powers most of their capabilities.
Package Architecture
The foundational layer is enssdk, a new unscoped package containing all shared ENS types and client-focused libraries. @ensnode/sdk (renamed from @ensnode/ensnode-sdk) depends on enssdk (dependency inversion from the current structure) to acquire shared types and ENS-specific client libs, while retaining its own operator-focused, ENSNode-specific exports and its @ensnode/sdk/internal subpath for internal implementation details shared between ENSNode services.
In the short term, APIs like Registrar Actions and Tokenscope may be surfaced within the Omnigraph directly (the current ENSv2 plugin already slightly overlaps with these). In the long term, the Omnigraph may encompass all ENSNode APIs, potentially offering 100% feature parity between a GraphQL surface and an equivalent HTTP/JSON surface. We're not close enough to propose specifics on the unified API yet, but the subpath structure of enssdk is designed to accommodate this evolution.
Testing
We should integrate the client libs into the integration test environment and confirm that those pathways operate against the devnet as expected. This sort of integration test over the (thin) clients would be much more valuable than mocking the api responses, since there's very little actual control flow in most of the client methods to test.
Breaking Changes and Transition
Due to the nascent usage of ENSNode in the ecosystem, a major breaking change is acceptable and we don't need to offer any transition period.
Timeline
Ordered by priority. Goal is user-facing experience ready within one month.
enssdk package — scaffold the package, establish subpath exports, migrate shared types and client-focused code from @ensnode/sdk
tightly focused on omnigraph api support
integration tested against devnet in integration-test-env using well-known example-queries.ts
enskit package — scaffold with enskit/react and enskit/react/omnigraph, migrate from @ensnode/react
ensskills — agent skills
enscli — CLI wrapping enssdk
@ensnode/sdk refactor — dependency inversion, consolidate @ensnode/ensrainbow-sdk and @ensnode/ensdb-sdk into subpath exports
We want the answer for 'which package do i install' to be extremely clear for new/existing developers, and the existing array of packages is a bit unclear. The new branding (
enssdk,enskit,enscli,ensskills) is intentionally general-purpose ENS ecosystem branding — these tools are not ENSNode-specific and will be useful to the broader ENS community, but obviously have first-class integration with ENSNode, which likely powers most of their capabilities.Package Architecture
The foundational layer is
enssdk, a new unscoped package containing all shared ENS types and client-focused libraries.@ensnode/sdk(renamed from@ensnode/ensnode-sdk) depends onenssdk(dependency inversion from the current structure) to acquire shared types and ENS-specific client libs, while retaining its own operator-focused, ENSNode-specific exports and its@ensnode/sdk/internalsubpath for internal implementation details shared between ENSNode services.enssdk— foundational ENS client library (unscoped npm package)@ensnode/sdk— this is the base layer@ensnode/sdkmigrate hereenssdk/omnigraph— provides typed access to the Omnigraph API viagql.tadaenssdk/registrars— Registrar Actions APIenssdk/identity— Identity APIenssdk/resolution— Resolution APIenssdk/analytics— Analytics APIenssdk/tokenscope— Tokenscope APIenssdk/meta— Config, Indexing Status, Realtime@ensnode/sdk— operator-focused ENSNode-specific exportsenssdkfor shared types@ensnode/sdk/internal— internal-only shared types/libs between ENSNode servicesenskit— framework-specific wrappers ofenssdk(unscoped npm package)enskit/react— React hooks and components wrappingenssdkenskit/react/omnigraph— opinionatedurql-based Omnigraph client with logical defaultsenskit/svelte, etc. in the futureenscli(see Narrative Overhaul: ENSNode CLI #1741)enssdknpx enscliensskills— agent skills for ENSOmnigraph API Evolution
In the short term, APIs like Registrar Actions and Tokenscope may be surfaced within the Omnigraph directly (the current ENSv2 plugin already slightly overlaps with these). In the long term, the Omnigraph may encompass all ENSNode APIs, potentially offering 100% feature parity between a GraphQL surface and an equivalent HTTP/JSON surface. We're not close enough to propose specifics on the unified API yet, but the subpath structure of
enssdkis designed to accommodate this evolution.Testing
We should integrate the client libs into the integration test environment and confirm that those pathways operate against the devnet as expected. This sort of integration test over the (thin) clients would be much more valuable than mocking the api responses, since there's very little actual control flow in most of the client methods to test.
Breaking Changes and Transition
Due to the nascent usage of ENSNode in the ecosystem, a major breaking change is acceptable and we don't need to offer any transition period.
Timeline
Ordered by priority. Goal is user-facing experience ready within one month.
enssdkpackage — scaffold the package, establish subpath exports, migrate shared types and client-focused code from@ensnode/sdkintegration-test-envusing well-knownexample-queries.tsenskitpackage — scaffold withenskit/reactandenskit/react/omnigraph, migrate from@ensnode/reactensskills— agent skillsenscli— CLI wrappingenssdk@ensnode/sdkrefactor — dependency inversion, consolidate@ensnode/ensrainbow-sdkand@ensnode/ensdb-sdkinto subpath exports