Source Code

;; SatGuard KYC Registry
(define-constant err-owner (err u920))
(define-constant err-dup (err u921))
(define-data-var admin principal tx-sender)
(define-data-var kyc-count uint u0)
(define-map kyc-status {who: principal} {verified: bool,level: uint,va: uint,by: principal})
(define-read-only (is-verified (who principal))
  (match (map-get? kyc-status {who: who})
    k (get verified k)
    false))
(define-read-only (get-kyc (who principal)) (map-get? kyc-status {who: who}))
(define-public (set-verified (who principal) (level uint))
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (map-set kyc-status {who: who} {verified: true,level: level,va: block-height,by: tx-sender})
    (var-set kyc-count (+ (var-get kyc-count) u1))
    (print {e: "kyc-verified",who: who,level: level})
    (ok true)))
(define-public (revoke-kyc (who principal))
  (begin
    (asserts! (is-eq tx-sender (var-get admin)) err-owner)
    (map-set kyc-status {who: who} {verified: false,level: u0,va: block-height,by: tx-sender})
    (print {e: "kyc-revoked",who: who})
    (ok true)))
(define-read-only (get-kyc-count) (var-get kyc-count))

Functions (5)

FunctionAccessArgs
is-verifiedread-onlywho: principal
get-kycread-onlywho: principal
set-verifiedpublicwho: principal, level: uint
revoke-kycpublicwho: principal
get-kyc-countread-only