Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.driftidentity.xyz/llms.txt

Use this file to discover all available pages before exploring further.

The DriftID Oracle is the bridge between what you do in the real world and what appears on-chain in your Drift ID. Without it, nothing would stop anyone from fabricating stat increases. The Oracle evaluates your reported actions, assigns a stat gain, and cryptographically signs the result so the protocol can verify its authenticity before writing anything to the chain.

How reporting works

1

You act

You perform a real-world action — studying, training, creating, mentoring, or any other meaningful effort.
2

You report

You submit the action through the DriftID app, selecting which stat you are targeting with that activity.
3

Oracle evaluates

The Oracle reviews your submission and rolls a value between +1 and +5, representing the stat increase you have earned.
4

Oracle signs

The Oracle creates an EIP-712 typed data signature that authorizes the specific stat update for your address.
5

You submit on-chain

You call updateStatsWithSignature() on the Profile contract, passing the Oracle’s signature. The contract verifies it and updates your stats.

EIP-712 signatures

The protocol uses the EIP-712 standard for typed data signing. This gives you three important guarantees about every stat update you submit:
  • Non-replayability: Each signature includes a unique nonce tied to your address, so the same signature cannot be used twice.
  • Immutability: The stat values are fixed at signing time. You cannot alter them after the Oracle has authorized the update.
  • Verifiability: The contract cryptographically confirms the signer’s identity before accepting any update.
The signed payload includes the following fields:
struct UpdateStats {
  address owner;
  uint256 profileId;
  uint64 focus;
  uint64 discipline;
  uint64 social;
  uint64 risk;
  uint256 nonce;
}

Cooldown between reports

To ensure organic growth and prevent stat grinding, the Oracle enforces a 24-hour cooldown between reports:
uint256 public constant REPORT_COOLDOWN = 1 days;
You cannot submit a second report until 24 hours have passed since your last one. This is enforced at the contract level, not just in the app.

Oracle fee

Each report costs a small fee of approximately $0.50 equivalent in ETH. This covers:
  • Gas costs for the signing operation
  • Oracle infrastructure maintenance
  • Incentives for future decentralization

Phase 2: The Jury system

In Phase 2, the protocol will transition from a centralized Oracle to a decentralized Jury system. High-stat Drifters will verify the actions of newer users, creating a meritocratic verification layer where only the proven can validate the aspiring.
The Oracle is currently centralized for Phase 1. This is a deliberate trade-off to ensure security while the protocol bootstraps its user base.