Skip to content

Validate metadata_uri is non-empty in credential-nft mint #182

Description

@DeFiVC

What

The credential-nft contract stores metadata_uri as-is with no validation that it's a well-formed URI or non-empty. A credential could be minted with an empty or meaningless URI.

Why

Credentials with empty or invalid metadata URIs are useless to holders and can't be verified off-chain. Adding a basic validation prevents accidental misconfiguration and ensures every minted credential has meaningful metadata.

Scope

  • Add a minimum length check on metadata_uri (e.g., non-empty, minimum 8 characters)
  • Consider basic URI format validation (starts with http://, https://, or ipfs://)
  • Add a test verifying rejection of empty/invalid URIs

Technical Context

  • File: contracts/credential-nft/src/mint.rs (line ~107)
  • metadata_uri is passed as a SorobanString and stored directly

Acceptance Criteria

  • mint_credential panics when metadata_uri is empty
  • mint_credential panics when metadata_uri is too short or malformed
  • Valid URIs are accepted without change
  • Unit tests verify both rejection and acceptance

Metadata

Metadata

Assignees

No one assigned

    Labels

    lowCosmetic, minor improvement, code quality, documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions