Skip to main content


Tier 3 verification introduces an extra layer of validation by employing oracles. This is particularly useful for data that requires external corroboration or originates from less secure or indirect sources.

Oracle-Backed Verification Process

  1. Oracle Selection: A trusted oracle is chosen to serve as an intermediary for data verification.
  2. Data Submission & Request: Data is submitted to the blockchain, and a request is made to the oracle for verification.
  3. Oracle Verification: The oracle verifies the data's authenticity against external sources or predefined criteria.
  4. Verification Result: The oracle provides a verification result, which is then recorded on the blockchain.


  • Integration with a trusted oracle service that can provide external data verification.
  • Smart contracts or blockchain protocols capable of handling oracle responses.

1. Oracle Selection

Identify and integrate a trusted oracle service into the blockchain system for external data verification.

// import necessary libraries and functions
import { OracleService } from './oracleService.js';

const selectOracle = async () => {
// Select a trusted oracle from a list of available services
const oracle = new OracleService('trusted_oracle_url');
return oracle;

const trustedOracle = selectOracle();

2. Data Submission & Request

Data is submitted to the blockchain, and a verification request is sent to the chosen oracle.

// import necessary libraries and functions
import { trustedOracle } from './selectOracle.js';
import { submitToBlockchain } from './utils.js';

const submitDataAndRequestVerification = async (data) => {
// Data submission to the blockchain
const submissionPackage = preprocessData(data);

// Send a verification request to the oracle


3. Oracle Verification

The oracle conducts verification by comparing the submitted data against reliable external sources or predefined criteria.

// Assuming the oracle service provides a method to validate data
import { trustedOracle } from './selectOracle.js';

const verifyDataWithOracle = async (data) => {
const verificationResult = await trustedOracle.verify(data);
return verificationResult;

4. Verification Result

The oracle's verification result is received and recorded on the blockchain, completing the Tier 3 verification process.

// import necessary libraries and functions
import { updateDataStatusWithOracle } from './utils.js';

const recordVerificationResult = async (dataId, oracleResult) => {
// Record the oracle's verification result on the blockchain
updateDataStatusWithOracle(dataId, oracleResult);

// Example usage
recordVerificationResult(submittedDataId, oracleVerificationOutcome);


Tier 3 verification ensures data authenticity by involving oracles for an added layer of external validation. This method is key for integrating data that requires external references or for which direct device-origin verification is not possible.

Additional Considerations

  • Establish strict criteria for selecting oracles to ensure reliability and objectivity.
  • Regularly audit and monitor oracle performance to guard against any potential vulnerabilities.
  • Implement consensus mechanisms among multiple oracles to further bolster trust in the verification process.

For practical application, developers should follow the guidelines provided by the blockchain network for integrating oracles and managing external data verification.

This section concludes the "Machine Data Verification on Blockchain" document, providing a full spectrum of data verification tiers suitable for various trust levels within a DePIN. Tier 3 verification ensures that even data requiring external validation can be trusted within the network, thus maintaining the system's integrity. The provided code snippets are conceptual and should be adapted for specific use cases, oracle services, and blockchain network protocols.