A decentralized infrastructure for cryptographic identity and document timestamping on Ethereum, enabling secure digital interactions through OpenPGP cryptography.
DEXES provides two complementary products for decentralized cryptographic operations:
Decentralized Public Key Infrastructure (PKI)
Web3PGP enables a decentralized public key infrastructure using OpenPGP and Ethereum. It allows:
- Decentralized Key Registry: Store and retrieve OpenPGP public keys on the blockchain
- Identity Certification: Establish trust chains by certifying keys on-chain
- Key Revocation: Revoke compromised or expired keys transparently
- Transparent Auditing: Immutable record of all key operations via blockchain events
- Cost Efficiency: Uses event logs for gas-optimized storage instead of contract state
π Web3PGP Documentation | βοΈ Web3PGP CLI
Document Timestamping & EDI System
Web3Sign provides decentralized Electronic Data Interchange (EDI) with cryptographic timestamping:
- Document Timestamping: Create immutable timestamps for any digital document
- Proof-of-Existence: Cryptographically prove document existence at specific times
- Certified Copies: Track document provenance with signature workflows
- Blockchain Verification: Verify document integrity and timestamp authenticity
- OpenPGP Integration: Leverages Web3PGP keys for cryptographic operations
π Web3Sign Documentation | βοΈ Web3Sign CLI
This monorepo contains all components of the DEXES ecosystem:
dexes/
βββ contracts/ # Solidity smart contracts (Foundry)
β βββ src/ # Contract source code
β βββ test/ # Contract tests
β βββ scripts/ # Deployment & management scripts
βββ clis/ # Command-line interfaces
β βββ web3pgp/ # Web3PGP CLI
β βββ web3sign/ # Web3Sign CLI
βββ sdks/ # Software development kits
β βββ typescript/ # TypeScript SDK
βββ frontends/ # Web applications
β βββ web3pgp/ # Web3PGP frontend
β βββ timestamp-verification/ # Timestamp verification tool
βββ documentation/ # Project documentation
β βββ NETWORKS.md # Network information
β βββ SETUP.md # Setup guides
βββ examples/ # Usage examples and tutorials
βββ scripts/ # Utility scripts
- Smart Contracts - Foundry-based Solidity contracts
- Web3PGP CLI - Command-line tool for key management
- Web3Sign CLI - Command-line tool for document timestamping
- TypeScript SDK - SDK for integrating with applications
- Setup Guide - Getting started with the project
- Network Information - Deployed contract addresses
- Node.js 18.x or higher
- Foundry (for smart contract development)
- GPG (for cryptographic operations)
# Clone the repository
git clone https://github.com/degengineering/dexes.git
cd dexes
# Install dependencies
npm install
# For contract development
cd contracts && forge install# Generate a key and register it
web3pgp blockchain generate-key
export DEXES_WALLET_PRIVATE_KEY='your_key'
gpg --export <your_key_fingerprint> | web3pgp blockchain register
# Timestamp a document
web3sign timestamp -e <fingerprint> -H <hash> -s signature.asc- Web3PGP: Core PKI contract for key registration and management
- Web3Sign: Timestamping contract for document verification
- FlatFee: Fee management with access control
- AccessManager: Role-based access control system
- TypeScript SDK: Comprehensive SDK for both Web3PGP and Web3Sign
- CLIs: Command-line tools for direct interaction
- Web Frontends: Browser-based interfaces
- Decentralized: No central authority or single point of failure
- Gas Efficient: Event-based storage for cost optimization
- Composability: Modular design for integration with other systems
- OpenPGP Native: Leverages existing cryptographic standards
- Upgradeable: UUPS proxy pattern for future enhancements
# Build all components
npm run build
# Build contracts
cd contracts && forge build
# Build CLIs
cd clis/web3pgp && npm run build
cd clis/web3sign && npm run build# Test contracts
cd contracts && forge test
# Test CLIs
cd clis/web3pgp && npm test
cd clis/web3sign && npm test
# Test SDK
cd sdks/typescript && npm test# Deploy contracts to testnet
cd contracts
forge script script/DeployTestEnvironment.s.sol --rpc-url $SEPOLIA_RPC_URL --broadcast
# Publish CLIs
cd clis/web3pgp && npm publish
cd clis/web3sign && npm publishContributions are not yet open. Issues, questions, feedback and bug reports are welcome as Github issues.
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Issues
- β Questions: GitHub Discussions
- Follow the existing code style and conventions
- Write tests for new functionality
- Update documentation for API changes
- Ensure all tests pass before submitting PRs
See the Setup Guide for detailed development environment setup.
- Audit Ready: Contracts designed with security best practices
- OpenPGP Validation: All cryptographic validation performed off-chain (openpgp.js)
- OpenZeppelin Access Control: Role-based permissions for sensitive operations
- OpenZeppelin Upgradeable: Secure upgrade mechanisms for bug fixes
- Safe MultiSig: Sensitive operations require multiple signatures
For security-related issues, please email support@lake42.eu (fingeprrint: D5DDB02C46A0A22A0C90D27E2C97F822EEFDA9B7) instead of creating public issues.
Smart contracts are licenced under Business Source License 1.1 - see LICENSE file for details.
The rest of the code is licenced under permissive licences.
- GitHub: degengineering/dexes