mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
3.3 KiB
3.3 KiB
Overview
The SVC (Service) module manages service registration with domain verification and UCAN-based authorization.
Request: {{.RequestType.Name}}
| Field ID | Name | Type | Description | | -------- | ---- | ---- | ----------- | {{range .RequestType.Fields}} | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
Response: {{.ResponseType.Name}}
| Field ID | Name | Type | Description | | -------- | ---- | ---- | ----------- | {{range .ResponseType.Fields}} | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
Implementation Details
{{if eq .MethodDescriptorProto.Name "InitiateDomainVerification"}}
- Starts domain ownership verification process
- Generates unique verification token
- Requires DNS TXT record setup
- Provides clear instructions for domain setup {{else if eq .MethodDescriptorProto.Name "VerifyDomain"}}
- Validates DNS TXT records for domain ownership
- Checks for correct verification token
- Establishes trust for service binding
- One-time verification persists on-chain {{else if eq .MethodDescriptorProto.Name "RegisterService"}}
- Registers services with verified domains
- Binds service to specific domain endpoints
- Establishes permission boundaries
- Creates root capability with UCAN {{else if eq .MethodDescriptorProto.Name "Params"}}
- Returns module configuration parameters
- Shows verification timeout settings
- Lists supported service types {{else if eq .MethodDescriptorProto.Name "DomainVerification"}}
- Queries domain verification status
- Returns verification token if pending
- Shows verification timestamp if completed {{else if eq .MethodDescriptorProto.Name "Service"}}
- Retrieves service details by ID
- Returns bound domain and permissions
- Shows UCAN capability chain {{else if eq .MethodDescriptorProto.Name "ServicesByOwner"}}
- Lists all services owned by an address
- Useful for service management interfaces
- Returns service metadata and status {{else if eq .MethodDescriptorProto.Name "ServicesByDomain"}}
- Finds services bound to a domain
- Supports service discovery by domain
- Returns active service endpoints {{end}}
Domain Verification Process
- Initiate: Generate verification token
- Configure: Add DNS TXT record with token
- Verify: Check DNS records for ownership proof
- Register: Bind services to verified domain
UCAN Authorization
- Delegation Chain: Hierarchical permission delegation
- Capability-based: Fine-grained access control
- JWT Format: Standard token representation
- Root Capabilities: Stored on IPFS with CID reference
Security Features
- Domain ownership verification prevents impersonation
- UCAN tokens enable secure delegation
- Permission scoping limits service capabilities
- On-chain verification audit trail
Usage Examples
# Initiate domain verification
snrd tx svc initiate-domain-verification example.com
# Verify domain ownership
snrd tx svc verify-domain example.com
# Register service
snrd tx svc register-service service-1 example.com --permissions read,write
# Query verification status
snrd query svc domain example.com
# List services for domain
snrd query svc services-by-domain example.com