2.5 KiB
Quartz CosmWasm Packages
This repository contains a collection of packages designed to facilitate the development of CosmWasm smart contracts for Quartz apps.
Packages
1. quartz-cw
The quartz-cw
package offers a high-level framework for building attestation-aware smart contracts by wrapping CosmWasm messages in TEE attestations (e.g. DCAP).
- Defines
Attested<M, A>
wrapper for a message and its attestation - Supports a MockAttestation type for development ease
- Implements session management for secure communication between contract and enclave
The
quartz-cw
package handles actual DCAP verification within smart contracts by calling the standalonequartz-dcap-verifier
andtcbinfo
contracts.
2. quartz-dcap-verifier
Your personal DCAP detective! This package is a standalone smart contract for verifying DCAP attestations that can be called by other contracts.
- Thin wrapper for standalone smart contract around the functionality provided in the
quartz-tee-ra
package - Provides query and execute entry points for attestation checks
3. quartz-tee-ra
This quartz-tee-ra
handles Intel SGX remote attestation for both EPID and DCAP protocols.
- Verifies EPID and DCAP attestations
- Provides core types and structures for SGX quotes
- Implements cryptographic verification of attestation reports
4. tcbinfo
The tcbinfo
package manages and verifies TCB information crucial for maintaining enclave security.
- Stores and retrieves TCB information
- Verifies TCB signatures and certificates
- Provides a CosmWasm contract for TCB management
5. wasmd-client
The wasmd-client
package offers a Rust client interface for interacting with Wasmd nodes.
- Defines traits for querying and executing CosmWasm contracts
- Provides utilities for deploying and interacting with contracts
Examples
Check out the integration_tests
modules in each package for usage examples and best practices!
Contributing
We welcome contributions from the community! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request. Make sure to follow the contribution guidelines outlined in the repository.
Contact
If you have any questions or need further assistance, please reach out to us at quartz.support@informal.systems.