Service-resolution
Version: GD/1.2 — Module: Core Capabilities
What Is Service Resolution#
Service resolution is the capability of a .gao domain to expose structured service endpoints that applications can discover and connect to automatically — without requiring the user to manually configure or share URLs.
Where payment resolution answers “where do I send value?”, service resolution answers “how do I connect to this entity’s services?”
resolve("shop.gao") →
payment_api: https://pay.shop.gao.global
booking_api: https://book.shop.gao.global
support_agent: assistant.shop.gao
menu: https://menu.shop.gao.global
crm_endpoint: https://crm.shop.gao.global
Any application that speaks the Gao Resolver API can discover all of these automatically. No service directory. No manual configuration. Identity-first service discovery.
Endpoint Record Schema#
Service endpoints are stored in the domain’s resolver record under the endpoints key:
{
"endpoints": {
"web": "https://shop.gao.global",
"payment": "https://pay.shop.gao.global",
"booking": "https://book.shop.gao.global",
"menu": "https://menu.shop.gao.global",
"api": "https://api.shop.gao.global",
"support": "assistant.shop.gao"
},
"content": {
"website": "https://shopwebsite.com",
"ipfs": "ipfs://Qm...",
"arweave": null
}
}
All endpoint records are owner-signed. Gao cannot modify them without the owner’s cryptographic signature.
Resolution by Purpose#
The resolver supports purpose-specific queries, returning only the relevant endpoint:
GET /v1/resolve/shop.gao?purpose=payment
GET /v1/resolve/shop.gao?purpose=browse
GET /v1/resolve/shop.gao?purpose=booking
GET /v1/resolve/shop.gao?purpose=agent
Purpose
Returns
payment
Payment proxy address or preferred payment endpoint
browse
Web content endpoint (website, IPFS, Arweave)
booking
Booking API endpoint
agent
AI agent authority record
identity
Trust level, display name, verification data
full
Complete record (owner only, authenticated)
Subdomain as Service Endpoint#
For businesses, each subdomain maps to a specific service. The subdomain inherits the parent domain’s trust badge.
shop.gao → brand identity + web presence
├── pay.shop.gao → payment endpoint
├── booking.shop.gao → appointment booking
├── menu.shop.gao → product/service catalog
├── order.shop.gao → order management
├── support.shop.gao → customer support agent
└── api.shop.gao → developer API
Applications can enumerate a domain’s subdomains to discover the full service graph:
const services = await resolver.getSubdomains('shop.gao');
// Returns: ["pay.shop.gao", "booking.shop.gao", "menu.shop.gao", ...]
---
### Agent Discovery
A special case of service resolution is AI agent discovery. Applications query a domain to find all authorized agents:
const agents = await resolver.getAgents('shop.gao'); // Returns: ["assistant.shop.gao", "sales.shop.gao", "support.shop.gao"]
Each returned agent domain can be resolved for its full authority record, scope, and expiry. See Agent Binding Model for the complete agent identity specification.
---
### Web Content Resolution
`.gao` domains support three types of web content endpoints:
Type
Format
Use Case
Traditional web
`https://...`
Standard website redirect
IPFS
`ipfs://Qm...`
Decentralized, content-addressed hosting
Arweave
`ar://...`
Permanent storage; content lives independently of the domain
Configuration is done through Gao Workspace — no technical knowledge required. The resolver handles the content type and returns the appropriate endpoint to the requesting browser or application.
**In Gao Browser**, when a user types `shop.gao` in the address bar:
1. Browser queries the Gao Resolver for the `browse` purpose
2. Resolver returns the configured content endpoint
3. Browser loads the content
4. Trust badge displayed in the address bar based on current trust level
---
### DePIN Device Identity
Devices may operate under domain identities, enabling secure verifiable communication between DePIN infrastructure components:
sensor.factory.gao → industrial IoT sensor identity camera.home.gao → home device identity node.depin.gao → DePIN node identity relay.network.gao → relay service identity
Device identities follow the same ownership and verification model as personal and business identities. They can hold wallet addresses for fee collection and carry trust badges that signal verification status to other services.
---
### SDK Integration
const resolver = new GaoResolver();
// Resolve specific endpoint const paymentEndpoint = await resolver.getEndpoint('shop.gao', 'payment'); // Returns: "https://pay.shop.gao.global"
// Resolve web content const website = await resolver.getEndpoint('shop.gao', 'browse'); // Returns: "https://shopwebsite.com"
// Discover all agents const agents = await resolver.getAgents('shop.gao'); // Returns: ["assistant.shop.gao", "support.shop.gao"]
// Discover all subdomains const subdomains = await resolver.getSubdomains('shop.gao'); // Returns: ["pay.shop.gao", "booking.shop.gao", ...]
TTL and Caching#
Service endpoints are cached by applications based on the TTL in the resolver response:
Endpoint type
Default TTL
Notes
Web content
3600s
Stable for most sites
Payment endpoint
300s
May change on wallet rotation
Agent records
60s
May be revoked quickly
API endpoints
3600s
Stable
Trust level
3600s
Changes only on re-verification
Applications must respect TTLs and re-query when expired. Never serve stale endpoint data for payment or agent contexts.
Service resolution is one capability of the identity container. See Identity Container for the full model and Privacy Modes for how privacy settings affect what each resolution query returns.