Skip to content

Commit f2f441c

Browse files
committed
feat: added relevant links
1 parent e0f5d22 commit f2f441c

4 files changed

Lines changed: 7 additions & 8 deletions

File tree

src/ens-best-practices/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ENS maps human-readable names like 'alice.eth' to machine-readable identifiers s
1212

1313
## Key Takeaway for ENS
1414

15-
To securely implement ENS in your applications, prioritize direct L1 data verification, enforce proper name normalization, and validate bidirectional resolution. Always verify interface support before interaction, respect chain-specific cointype parameters, and implement CCIP-Read functionality correctly. These practices prevent address spoofing, ensure cross-chain compatibility, and maintain data integrity throughout the ENS ecosystem.
15+
To securely implement ENS in your applications, prioritize direct L1 data verification, enforce proper name normalization, and validate bidirectional resolution. Always verify interface support before interaction, respect chain-specific cointype parameters, and implement [CCIP-Read](https://eips.ethereum.org/EIPS/eip-3668) functionality correctly. These practices prevent address spoofing, ensure cross-chain compatibility, and maintain data integrity throughout the ENS ecosystem.
1616

1717
## What This Framework Covers
1818

@@ -21,7 +21,7 @@ This best practices framework includes guidance on:
2121
* **Data Integrity & Verification** - Ensuring reliable and secure name resolution
2222
* **Cross-Chain Compatibility** - Supporting ENS across multiple blockchain networks
2323
* **Smart Contract Integration** - Leveraging ENS in smart contract systems
24-
* **Interface Compliance** - Correctly implementing and verifying ENS interfaces
24+
* **Interface Compliance** - Correctly implementing and [verifying ENS interfaces](https://eips.ethereum.org/EIPS/eip-165)
2525
* **Name Handling & Normalization** - Properly processing and displaying ENS names
2626

2727
These recommendations are designed for developers integrating ENS into applications, wallets, smart contracts, or other blockchain systems. Following these practices will help create more secure, reliable, and user-friendly ENS implementations.

src/ens-best-practices/cross-chain-compatibility.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ tags:
66

77
# Cross-Chain Compatibility
88

9-
## Respect Cointype for Chain-Specific Resolution
9+
## Respect Cointype for [Chain-Specific Resolution](https://docs.ens.domains/ensip/9)
1010

1111
- Always use the correct cointype parameter when resolving addresses on specific chains
12-
- For EVM-compatible chains, implement optional fallback to cointype(60) when a specific cointype record doesn't exist, with prominent user warnings
13-
- When applying fallback resolution, prominently warn the user that the resolved address may not exist or be controlled by the same entity on the target chain, and require explicit user confirmation before proceeding
12+
- For EVM-compatible chains, derive cointypes from chain IDs according to [ENSIP-11](https://docs.ens.domains/ensip/11)
1413

15-
**Rationale**: An ENS name can resolve to a different address for each different blockchain network, which ENS supports through the cointype field in address records (following SLIP-44 standards). With the rise of smart contract wallets and account abstraction, users may have different addresses across different chains. Failing to respect the cointype when resolving addresses can lead to funds being sent to addresses that don't exist on the target chain or that belong to different entities altogether. While fallback resolution to cointype(60) can improve user experience, it must be implemented with clear warnings about potential risks and require explicit user consent.
14+
**Rationale**: An ENS name can resolve to a different address for each different blockchain network, which ENS supports through the cointype field in address records (following SLIP-44 standards). With the rise of smart contract wallets and account abstraction, users may have different addresses across different chains. Failing to respect the cointype when resolving addresses can lead to funds being sent to addresses that don't exist on the target chain or that belong to different entities altogether.
1615

1716
## Implement CCIP-Read Support
1817

src/ens-best-practices/data-integrity-verification.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ tags:
1414

1515
**Rationale**: Indexers and third-party APIs may have delayed updates or inconsistencies that could lead to payments being sent to outdated or incorrect addresses. By querying L1 directly, applications work with the most current and authoritative ENS data, dramatically reducing the risk of misdirected funds. This is particularly crucial for high-value transactions where the consequences of using stale data could be severe.
1616

17-
## Verify Forward Resolution on Reverse Records
17+
## Verify Forward Resolution on [Reverse Records](https://docs.ens.domains/ensip/3)
1818

1919
- Always perform forward resolution on reverse records to verify address matches
2020
- Check that name → address → name completes a valid loop

src/ens-best-practices/name-handling-normalization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ tags:
66

77
# Name Handling & Normalization
88

9-
## Normalize Names per ENSIP-15
9+
## Normalize Names per [ENSIP-15](https://docs.ens.domains/ensip/15)
1010
- Always normalize ENS names before creating namehash, labelhash, or DNS-encoding
1111
- Use established libraries that correctly implement ENSIP-15 normalization (like @adraffy/ens-normalize)
1212
- Apply normalization at the earliest possible point in your ENS handling logic

0 commit comments

Comments
 (0)