A cutting-edge decentralized verification platform that leverages blockchain technology to establish trust, provenance, and ownership for digital and physical assets. Meta Verify creates an immutable, transparent record of asset lifecycle, enabling secure and verifiable asset management across various domains.
Asset Tracking Vault enables users to:
- Register assets with detailed metadata
- Transfer ownership securely
- Track complete asset provenance
- Add third-party attestations
- Manage asset status (active/inactive)
- View complete ownership history
The system is particularly valuable for:
- Insurance claims processing
- Proof of ownership verification
- Asset management
- Fraud prevention
- Supply chain tracking
The system is built around a central asset vault contract that manages all asset-related operations and maintains several interconnected data structures.
graph TD
A[Asset Registration] --> B[Asset Vault Contract]
B --> C[Asset Data Structure]
B --> D[History Tracking]
B --> E[Attestations]
B --> F[Owner Registry]
C --> G[Metadata]
C --> H[Ownership]
C --> I[Status]
D --> J[Transfer History]
D --> K[Status Changes]
E --> L[Third-party Verification]
E --> M[Supporting Documents]
F --> N[Owner Assets]
F --> O[Access Control]
The core contract (meta-verify-vault.clar) manages comprehensive asset verification and tracking operations.
assets: Stores core asset informationasset-history: Tracks ownership transfersasset-attestations: Stores third-party verificationsprincipal-assets: Maps owners to their assets
- Asset modifications restricted to current owner
- Attestations can be added by any principal
- Transfers require current owner authorization
- Clarinet
- Stacks wallet for deployment
- Clone the repository
- Install dependencies with Clarinet
- Deploy contract to desired network
;; Register a new asset
(contract-call? .asset-vault register-asset
"Vintage Watch"
u5000
u1234567
"Excellent"
(some "ipfs://Qm...</"))
;; Transfer asset ownership
(contract-call? .asset-vault transfer-asset
u1
'SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7
(some "Sale completed"))(define-public (register-asset
(description (string-ascii 256))
(value uint)
(date-acquired uint)
(condition (string-ascii 64))
(metadata-uri (optional (string-utf8 256))))(define-public (transfer-asset
(asset-id uint)
(new-owner principal)
(notes (optional (string-ascii 256))))(define-public (add-attestation
(asset-id uint)
(attestation-type (string-ascii 64))
(details (string-utf8 256))
(uri (optional (string-utf8 256))))(define-read-only (get-asset (asset-id uint)))(define-read-only (get-assets-by-owner (owner principal)))Run the test suite using Clarinet:
clarinet test- Start Clarinet console:
clarinet console- Deploy contract:
(contract-call? .asset-vault ...)- Asset metadata size limited to 256 characters
- Maximum 100 assets per principal
- No built-in encryption for sensitive metadata
- Always verify asset ownership before transfers
- Use secure URIs for sensitive metadata storage
- Keep detailed transfer notes for audit purposes
- Regularly monitor asset status and attestations
- Validate all inputs before registration
The contract includes comprehensive error codes:
ERR-NOT-AUTHORIZED (u100)ERR-ASSET-NOT-FOUND (u101)ERR-INVALID-DETAILS (u102)ERR-ALREADY-EXISTS (u103)ERR-UNAUTHORIZED-TRANSFER (u104)ERR-INVALID-RECEIVER (u105)ERR-UNAUTHORIZED-ATTESTATION (u106)