Comprehensive integration with AllDomains service for managing and resolving domains across multiple TLDs on Solana. Supports domain resolution, ownership lookup, and TLD management.
Core Features
-
Domain Resolution
- Multi-TLD support
- Owner lookup
- Main domain resolution
- Reverse resolution
-
Domain Management
- Owned domains lookup
- TLD enumeration
- Domain registration
- Favorite domains
Usage
Resolve Domain
// Resolve any domain
const owner = await agent.methods.resolveAllDomains("mydomain.blink");
// Get owned domains
const domains = await agent.methods.getOwnedAllDomains(
new PublicKey("owner-address")
);
// Get main domain
const mainDomain = await agent.methods.getMainAllDomainsDomain(
new PublicKey("owner-address")
);
List TLDs
// Get all available TLDs
const tlds = await agent.methods.getAllDomainsTLDs();
// Get owned domains for specific TLD
const domainsByTld = await agent.methods.getOwnedDomainsForTLD("bonk");
Example Prompts
Natural Language Prompts
"Resolve mydomain.blink to a wallet address"
"Find all domains owned by this wallet"
"Get the main domain for address ABC..."
"List all available TLDs"
Resolve Domain
{
"domain": "mydomain.blink"
}
Get Owned Domains
Get Main Domain
{
"address": "7nxQB..."
}
Domain Resolution
{
status: "success",
message: "Domain resolved successfully",
owner: "7nxQB..."
}
Owned Domains
{
status: "success",
message: "Owned domains fetched successfully",
domains: ["domain1.blink", "domain2.bonk"]
}
TLD List
{
status: "success",
message: "TLDs fetched successfully",
tlds: [".blink", ".bonk", ".abc"]
}
Implementation Details
Domain Resolution
interface ResolutionParams {
domain: string; // Full domain with TLD
connection: Connection; // RPC connection
}
// Features
- Multi-TLD support
- Error recovery
- Owner validation
- Case sensitivity
Owner Lookup
interface OwnerLookupParams {
owner: PublicKey; // Wallet address
connection: Connection; // RPC connection
}
// Features
- Domain enumeration
- TLD filtering
- Error handling
- Batch processing
Error Handling
try {
const owner = await agent.methods.resolveAllDomains(domain);
} catch (error) {
if (error.message.includes("undefined")) {
// Handle domain not found
} else if (error.message.includes("invalid")) {
// Handle invalid domain format
}
}
Best Practices
-
Domain Resolution
- Validate domain format
- Handle missing domains
- Implement caching
- Check TLD support
-
Owner Lookup
- Batch requests
- Cache results
- Filter inactive domains
- Validate addresses
-
TLD Management
- Monitor new TLDs
- Update regularly
- Check availability
- Handle migrations
-
Performance
- Cache common lookups
- Batch operations
- Monitor RPC usage
- Handle timeouts
Common Issues
-
Resolution
- Invalid formats
- Unsupported TLDs
- Network errors
- Stale data
-
Owner Lookup
- Missing domains
- Invalid addresses
- Timeout issues
- RPC errors
-
TLD Issues
- New TLDs
- Deprecated TLDs
- Format changes
- Migration issues
Common TLDs
- .blink
- .bonk
- .abc
- .glow
- .backpack
Integration Notes
-
Resolution Flow
// Step by step resolution
const parser = new TldParser(connection);
const owner = await parser.getOwnerFromDomainTld(domain);
-
Ownership Verification
const domains = await parser.getParsedAllUserDomains(owner);
const isOwner = domains.some(d => d.domain === domain);
-
Main Domain
const mainDomain = await parser.getFavoriteDomain(owner);
resolveAllDomains
: Domain resolution
getOwnedAllDomains
: Domain ownership
getAllDomainsTLDs
: TLD management
getMainAllDomainsDomain
: Primary domains