Source Code


;; nova-reputation-score.clar
;; Non-transferable score for governance
;; CLARITY VERSION: 2

(define-map scores principal uint)

(define-public (mint-reputation (user principal) (amount uint))
    (begin
        ;; Only admin can mint (omitted)
        (map-set scores user (+ (default-to u0 (map-get? scores user)) amount))
        (ok true)
    )
)

(define-public (burn-reputation (user principal) (amount uint))
    (let ((current (default-to u0 (map-get? scores user))))
        (asserts! (>= current amount) (err u100))
        (map-set scores user (- current amount))
        (ok true)
    )
)

(define-read-only (get-score (user principal))
    (default-to u0 (map-get? scores user))
)

Functions (3)

FunctionAccessArgs
mint-reputationpublicuser: principal, amount: uint
burn-reputationpublicuser: principal, amount: uint
get-scoreread-onlyuser: principal