API
ZK ONE exposes a minimal, secure API layer that interacts with smart contracts, off-chain zk-proof generation, and identity management flows.
Omega uses wallet-based authentication.
Authorization: Bearer <signature>
X-Wallet-Address: <address>
The client receives a challenge (/auth/challenge)
Signs the challenge in the wallet
Receives a session token
Upload Identity Document
Uploads user identity data → hashes → sends transaction → starts verification.
POST /api/identity/upload
Body
{
"documentType": "passport",
"file": "<base64-encoded-document>"
}
Response
Get Identity Status
GET /api/identity/status?user=<address>
Revoke Identity
Revokes a previously uploaded identity document.
POST /api/identity/revoke
Response
Hashes sensitive data client-side → uploads hash to L2.
POST /api/data/hash
Response
Submit zk-Proof
Submit ZK proof for a document or data record.
POST /api/data/zk-proof
Response
Third-party checks whether the provided data matches the on-chain hash.
POST /api/data/verify
Response
Access Control API
Grant Access
POST /api/access/grant
Response
POST /api/access/revoke
Response
Get Access List
GET /api/access/list?resource=<name>
Smart Contract Interfaces
Below are the ABI-level contract definitions used by Omega.
DataVerificationContract
storeHash(bytes32 hash)
Stores a new hash of user data on-chain.
Returns:
bool success
verifyHash(bytes32 providedHash)
Checks whether the provided hash matches the stored one.
Returns:
bool valid
submitProof(bytes proof)
Submits a zk-proof for verification.
Returns:
grantAccess(address target, string resource)
Updates access control mapping.
revokeAccess(address target, string resource)
Removes access from a user.
getAccessList(string resource)
Returns list of allowed addresses.
Last updated