Source Code

;; AI Model Registry
;; Register and manage AI/ML models

(define-constant contract-owner tx-sender)
(define-constant err-unauthorized (err u100))
(define-constant err-not-found (err u101))

(define-data-var next-model-id uint u1)

(define-map models
  uint
  {
    owner: principal,
    name: (string-ascii 64),
    version: (string-ascii 16),
    accuracy: uint,
    verified: bool
  }
)

(define-read-only (get-model (model-id uint))
  (map-get? models model-id)
)

(define-public (register-model (name (string-ascii 64)) (version (string-ascii 16)) (accuracy uint))
  (let ((model-id (var-get next-model-id)))
    (map-set models model-id {
      owner: tx-sender,
      name: name,
      version: version,
      accuracy: accuracy,
      verified: false
    })
    (var-set next-model-id (+ model-id u1))
    (ok model-id)
  )
)

(define-public (verify-model (model-id uint))
  (let ((model (unwrap! (map-get? models model-id) err-not-found)))
    (asserts! (is-eq tx-sender contract-owner) err-unauthorized)
    (map-set models model-id (merge model { verified: true }))
    (ok true)
  )
)

Functions (3)

FunctionAccessArgs
get-modelread-onlymodel-id: uint
register-modelpublicname: (string-ascii 64
verify-modelpublicmodel-id: uint