Source Code

(define-map user-badges principal (list 20 uint))
(define-map badge-info uint {name: (string-ascii 32), description: (string-ascii 100)})
(define-data-var badge-counter uint u0)
(define-read-only (get-user-badges (user principal)) (default-to (list) (map-get? user-badges user)))
(define-read-only (get-badge (id uint)) (map-get? badge-info id))
(define-public (create-badge (name (string-ascii 32)) (description (string-ascii 100)))
  (let ((id (var-get badge-counter)))
    (map-set badge-info id {name: name, description: description})
    (var-set badge-counter (+ id u1))
    (ok id)))

Functions (3)

FunctionAccessArgs
get-user-badgesread-onlyuser: principal
get-badgeread-onlyid: uint
create-badgepublicname: (string-ascii 32