Identity Exchange Flow
CRYMBO Oracle enables Bussiness/ institution to exchange encrypted identity information in a secure, on-chain-coordinated process that complies with global Travel Rule requirements.
Key Concepts
- PII (Personally Identifiable Information) is never stored on-chain.
- All identity data is end-to-end encrypted using the receiver’s public key.
- CRYMBO Oracle ensures that only authorized Bussiness/ institution can initiate and respond to requests.
Flow Overview
1. Initiate Identity Request
The sending Bussiness/ institution triggers a request by calling the CRYMBO smart contract:
requestPIIForTransaction(string network, bytes32 txHash, address receiver)
This emits a PIIRequested
event picked up by the CRYMBO Oracle.
2. Data Fetch or Push
Two possible flows are supported:
a. Receiver-Pull (Default)
- The CRYMBO Oracle pulls the encrypted PII from the sender’s API endpoint.
b. Sender-Push (Optional)
- The sender proactively pushes encrypted PII to CRYMBO via:
POST /api/oracle/pushEncryptedPII
3. Secure Routing
The encrypted payload is routed by the CRYMBO Oracle to the receiver Bussiness/ institution. Only the intended receiver can decrypt the data using its private key.
4. Compliance Visibility
- All transactions are timestamped and event-driven
- Auditable metadata is maintained off-chain for compliance tracking
- Replay protection is enforced with nonce + timestamp
Example (JavaScript using Ethers.js)
const tx = await oracleContract.requestPIIForTransaction('polygon', ethers.encodeBytes32String(txHash), receiverAddress);
await tx.wait();
📌 Next Step: Explore API Usage