CREATE TABLE iris_verifications (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
creator_id uuid REFERENCES creator_profiles(id) UNIQUE,
-- Verification method
provider text NOT NULL, -- 'worldcoin', 'internal'
-- Worldcoin integration
world_id_nullifier_hash text, -- Unique identifier (not the iris itself)
world_id_proof jsonb, -- ZK proof for verification
world_id_merkle_root text,
-- Verification status
status text DEFAULT 'pending', -- 'pending', 'verified', 'failed', 'revoked'
-- Timestamps
initiated_at timestamptz DEFAULT now(),
verified_at timestamptz,
expires_at timestamptz, -- Optional: require re-verification
-- Audit
verification_ip inet,
verification_device text,
failure_reason text,
created_at timestamptz DEFAULT now(),
updated_at timestamptz DEFAULT now()
);
CREATE INDEX idx_iris_creator ON iris_verifications(creator_id);
CREATE INDEX idx_iris_status ON iris_verifications(status);
CREATE INDEX idx_iris_worldid ON iris_verifications(world_id_nullifier_hash);