Skip to main content
Sigvex

NFT Creator Verification Remediation

How to fix missing NFT creator signature verification.

NFT Creator Verification Remediation

Overview

Related Detector: NFT Creator Verification

Missing creator verification enables impersonation. The fix is to only set verified: true for creators who have signed the current transaction, and use the NFT metadata program’s sign_metadata for post-creation verification.

// Only verify creators who signed
for creator in metadata.creators.iter_mut() {
    creator.verified = ctx.remaining_accounts.iter()
        .any(|a| a.key() == creator.address && a.is_signer);
}

Alternative Mitigations

Use the NFT metadata program CPI for creator verification:

invoke(
    &mpl_token_metadata::instruction::sign_metadata(
        mpl_token_metadata::id(),
        metadata_key,
        creator_key,  // Must be a signer
    ),
    accounts,
)?;

Common Mistakes

Mistake: Batch-Setting All Creators as Verified

// WRONG: marks all creators verified regardless of signatures
for creator in &mut creators { creator.verified = true; }

Only the signing creator can be marked as verified per transaction.

References