Digital MRV (dMRV) provides cryptographically verifiable proof of real-world activities and impacts through automated data collection, validation, and certification. Unlike traditional MRV, it enables real-time monitoring, cryptographic trust, and automated verification.
Key Advantages
Real-Time Data Continuous IoT monitoring vs periodic surveys
Cryptographic Trust Tamper-proof records with blockchain anchoring
Protocol-Driven Standardized templates for rapid deployment
Automated Verification AI-powered validation with Oracle services
Protocol Configuration
Select or create protocol template
Define measurement parameters
Configure validation rules
Set reporting intervals
Map to recognized standards
Set baseline calculations
Define emission factors
Configure verification rules
Example Protocol
{
"type" : "CleanCookingProtocol" ,
"version" : "1.0.0" ,
"methodology" : "GS_MMECD_1.0" ,
"parameters" : {
"measurementInterval" : 300 ,
"requiredMetrics" : [
"burnTime" ,
"fuelConsumed" ,
"temperature"
],
"baselineEmissionFactor" : 7.2 ,
"minimumDataPoints" : 100
},
"validation" : {
"rules" : [{
"metric" : "temperature" ,
"min" : 50 ,
"max" : 300
}],
"requiredEvidence" : [
"deviceTelemetry" ,
"fuelDelivery" ,
"baselineData"
]
}
}
Data Collection
Device Integration
Configure Device
Device Telemetry
from emerging import Device, Protocol
# Load protocol
protocol = Protocol.get( "clean-cooking-v1" )
# Configure device with protocol
device = Device.configure(
device_id = "did:ixo:device/123" ,
protocol = protocol,
settings = {
"measurement_interval" : 300 ,
"offline_buffer_size" : 1000
}
)
# Start measurements
device.start_monitoring()
Data Pipeline
Device authentication
Secure data transmission
Edge validation
Offline buffering
Protocol validation
Data aggregation
Anomaly detection
Baseline comparison
Verification Process
Oracle Network
from emerging import Oracle, Protocol
# Initialize oracle with protocol
oracle = Oracle(
protocol_id = "clean-cooking-v1" ,
min_confidence = 0.95 ,
required_validators = 3
)
# Verify measurements
verification = oracle.verify_measurements(
measurements = device_data,
baseline = baseline_data,
evidence = {
"telemetry" : sensor_logs,
"delivery" : fuel_records
}
)
# Issue credential if valid
if verification.is_valid:
credential = verification.issue_credential()
Validation Rules
Measurements follow protocol specification
Cryptographic proofs are valid
Confidence score for supporting evidence
Credential Issuance
{
"@context" : [
"https://www.w3.org/2018/credentials/v1" ,
"https://w3id.org/dmrv/v1"
],
"type" : [ "VerifiableCredential" , "MeasurementClaim" ],
"issuer" : "did:ixo:oracle/456" ,
"issuanceDate" : "2024-03-15T12:00:00Z" ,
"credentialSubject" : {
"id" : "did:ixo:device/123" ,
"protocol" : "clean-cooking-v1" ,
"measurements" : {
"burnTime" : 300 ,
"fuelConsumed" : 15
},
"evidence" : [{
"type" : "TelemetryData" ,
"hash" : "0x123..." ,
"uri" : "ipfs://Qm..."
}]
}
}
Best Practices
Follow protocol specifications carefully and implement comprehensive data validation at every stage.
Security
Use secure communication channels
Implement device authentication
Validate data integrity
Monitor for anomalies
Scalability
Configure offline buffering
Implement batch processing
Use load balancing
Monitor system performance
Next Steps
Protocol Guide Create custom protocols
Device Integration Connect IoT devices
Oracle Setup Configure validation networks