Architecture
UGTP is organized into an on-chain coordination layer of smart contracts and an off-chain integration layer consisting of an SDK and REST API.
Identity Model
At the core of UGTP are two identity primitives that work together to provide a unified cross-chain identity system.
UCI
Universal Cross-chain Identity
A globally unique identifier assigned to each user. A UCI is registered on-chain via the UCIRegistry contract and serves as the root of a user's cross-chain identity graph. Each UCI is tied to a controlling address.
UCA
Unified Cross-chain Account
A container registered in UCARegistry that groups one or more blockchain addresses under a single UCI. A UCA allows a user to manage linked accounts across chains as one logical entity.
Relationship Diagram
User
|
+-- UCI (Universal Cross-chain Identity)
|
+-- UCA (Unified Cross-chain Account)
|
+-- Linked Account (Avalanche 0xABC...)
+-- Linked Account (Ethereum 0xDEF...)
+-- Linked Account (Polygon 0x123...)
Intent-Based Execution
UGTP uses an intent-based model where users declare what they want to accomplish rather than specifying exact transaction parameters. The protocol resolves intents into executable operations through a multi-step process:
- 1
Intent Declaration
A user submits a structured intent (e.g., "transfer 10 USDC from Avalanche to Ethereum") to the
IntentRegistrycontract. - 2
Policy Validation
The
PolicyHookcontract validates the intent against configurable rules—fee requirements, whitelisted adapters, and protocol-level constraints. - 3
Adapter Resolution
The
AdapterRegistryidentifies the appropriate chain adapter to handle the operation. Adapters are chain-specific modules registered on-chain. - 4
Execution
The resolved adapter processes the intent and executes the corresponding on-chain transactions on the target network(s).
On-Chain Coordination Layer
The protocol deploys 7 smart contracts that collectively manage identity, policy, and intent coordination. All contracts are currently deployed on Avalanche C-Chain.
ProtocolConfigCentral configuration store. Holds protocol parameters, fee settings, and references to other contract addresses.
PolicyHookValidates operations against configurable policy rules. Called during intent submission and account operations.
UCIRegistryManages Universal Cross-chain Identity registration and lookup. Maps controlling addresses to UCI identifiers.
UCARegistryManages Unified Cross-chain Account creation. Groups linked accounts under a UCI.
LinkedAccountRegistryTracks individual blockchain addresses linked to a UCA. Handles cross-chain account association.
IntentRegistryRecords and tracks user intents. Provides the entry point for intent-based operations.
AdapterRegistryRegistry of chain-specific adapter modules. Maps chain IDs to adapter contract addresses.
Off-Chain SDK and API
The off-chain layer provides two integration paths for developers:
TypeScript SDK
@ugtp/sdk
A TypeScript/JavaScript library that wraps contract interactions and API calls. Designed for frontend and Node.js applications. Handles ABI encoding, transaction building, and intent submission.
REST API
api.ugtp.net
A read-only HTTP API that provides protocol status, contract metadata, fee information, and chain configuration. Useful for lightweight integrations and monitoring.