feat: ENS resolution, move chains under apps#37
Merged
CodesMcCabe merged 9 commits intomainfrom Mar 25, 2026
Merged
Conversation
Add support for .eth names (e.g. `alchemy balance vitalik.eth`) across balance, transfers, tokens, and nfts commands. Resolves ENS names via eth_call to the Universal Resolver contract on Ethereum networks. - New src/lib/ens.ts: namehash (EIP-137), DNS wire encoding, resolver - New resolveAddress() in validators.ts: detects .eth suffix, resolves via ENS, or validates as hex address - Dependency: @noble/hashes for keccak256 (15KB, zero deps) - Only supported on eth-* networks; clear error otherwise Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0xeEeEEEeE14D718C2B47D9923Deab1335E144EeEe is the current production Universal Resolver per ENS documentation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move `chains list` to `apps chains` since it's Admin API functionality. Update `network list` description to clarify it provides RPC network IDs (e.g. eth-mainnet) for use with --network. Delete standalone chains command and test. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Removing unref() prevents Node from exiting prematurely between pagination prompts in standalone (non-REPL) commands. stdin.pause() alone is sufficient — a paused non-raw stdin doesn't keep the process alive. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Show "X tokens (zero balances hidden)" instead of confusing "X non-zero of Y contracts" per-page counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix das subcommand registration (was creating a literal <method> command instead of using it as an argument). DAS methods use named params (object) per the OpenRPC spec, not positional params (array) — unwrap single JSON object args to send as params directly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
lohnim
approved these changes
Mar 25, 2026
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
balance,transfers,tokens,nftsnow accept.ethnames (e.g.alchemy balance vitalik.eth). Resolves via Universal Resolver contract on Ethereum networks. Uses@noble/hashesfor keccak256 (15KB, zero deps).chains list→apps chains: Clearer separation fromnetwork list.network listshows RPC network IDs (e.g.eth-mainnet) for--networkflag.apps chainsshows Admin API chain identifiers (e.g.ETH_MAINNET) for app configuration.Test plan
pnpm run build— cleanpnpm test— 245 tests passingalchemy balance vitalik.eth— resolves to 0xd8da6b... and returns balancealchemy balance vitalik.eth -n polygon-mainnet— should error (ENS only on Ethereum)alchemy tokens vitalik.eth— verify ENS works with tokensalchemy apps chains— verify it lists Admin API chain enumsalchemy chains list— should show "Unknown command"alchemy network list— verify updated hint text🤖 Generated with Claude Code