Composable Contract Functionality
Attach functionality like building blocks.
Modular Functionality for Documents
Resolvers are smart contracts that attach to Document Records, providing specialized functionality beyond basic registration and tokenization. Think of them as plug-in modules that extend what your documents can do—payment processing, access control, contact management, lifecycle tracking, and more.
Each resolver is a composable building block. Attach one resolver for basic contact information lookup. Add another for automated payment routing. Stack a third for lifecycle state management. The combination creates powerful, customized document behavior without modifying core infrastructure.
The Resolver Pattern
When a third party queries a token or document, resolvers respond with the requested data:
Token Query → Document Record → Resolver → Dynamic Response
For example, a Contact Resolver attached to a rental agreement can return current landlord and tenant contact information. As parties change, update the resolver—the underlying document identity remains immutable while contact data stays current.
This pattern separates what must never change (document identity, content hash) from what should change (contact info, lifecycle state, payment details).
Composability is Key
Resolvers are designed for composition. A single document can have multiple resolvers attached:
| Document Type | Possible Resolver Combination |
|---|---|
| Rental Lease | Contact + Payment + Lifecycle |
| Loan Agreement | Payment + Lifecycle + Access |
| Supply Chain | Contact + Lifecycle + Payment |
| IP License | Royalty + Access + Contact |
Each resolver handles one concern well. Combined, they create sophisticated document functionality that would be impossible with monolithic smart contracts.
Resolver Types
Contact Resolver
Provides current contact information for document parties—addresses, emails, phone numbers, or wallet addresses. Information updates without changing the underlying document. Perfect for contracts where parties need to reach each other but identities may change.
Metadata Resolver
Returns dynamic metadata about the document—current status, last updated timestamp, classification tags, or custom attributes. Enables rich querying without exposing document content. Ideal for document management and discovery.
Payment Routing Resolver
Directs payments to correct recipients based on document terms. Handles splits, escrows, and conditional routing. When payment arrives, the resolver ensures funds flow to the right parties according to the registered agreement.
Lifecycle Resolver
Tracks document state through defined stages—draft, active, suspended, expired, terminated. Enables workflows that depend on document status. Query current state; trigger transitions based on conditions.
Access Control Resolver
Manages who can access document content or perform operations. Define roles, permissions, and access conditions. Integrate with EAS attestations for identity-based access control.
Custom Resolvers
Build purpose-specific resolvers for unique use cases. Any functionality that can be encoded in a smart contract can become a resolver. Publish to the Marketplace for discovery by others.
How They Work
Token or Document Queried
A third party queries a token or document for specific information—contact details, payment routing, lifecycle state. The query includes which resolver type they're requesting.
Resolver Smart Contract Invoked
The query routes to the appropriate resolver attached to that Document Record. The resolver's smart contract logic executes, determining the correct response based on current state.
Verified Data Returned
The resolver returns verified, current data. Because the resolver is attached to a specific Document Record, the response is cryptographically linked to the source RWC—not arbitrary data, but verified information.
Action Taken Based on Response
The querying party uses the resolved data—routes payment, contacts the correct party, checks lifecycle state for workflow, or grants access. The resolver bridges document identity to dynamic operations.
Use Cases
Contact Information Updates
A property changes management companies. Update the Contact Resolver with new manager details—tenants query the token and reach the current manager without any change to the lease document itself.
Ownership Change Notifications
A loan is sold to a new servicer. The Metadata Resolver updates with new servicer information. Borrowers query their loan token to find current payment instructions automatically.
Payment Routing Automation
A royalty agreement splits revenue 70/30 between artist and label. The Payment Resolver routes incoming funds automatically—no manual distribution, no disputes about calculations.
Dynamic Metadata Enrichment
A credential token needs additional context—issue date, expiration, issuing authority. The Metadata Resolver provides this information on demand without storing it in the token itself.
Frequently Asked Questions
Extend Your Documents with Resolvers
Browse existing resolvers in the Marketplace or build custom functionality for your specific use case. Composable by design.