G

Service-resolution

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.gaoorder 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.