;; SatGuard Governance Quorum
(define-constant admin tx-sender)
(define-data-var quorum-pct uint u30)
(define-data-var total-voters uint u0)
(define-map voter-registered principal bool)
(define-read-only (get-quorum-pct) (var-get quorum-pct))
(define-read-only (get-total-voters) (var-get total-voters))
(define-read-only (is-voter (user principal)) (default-to false (map-get? voter-registered user)))
(define-read-only (quorum-met (votes uint))
(>= (* votes u100) (* (var-get total-voters) (var-get quorum-pct))))
(define-public (register-voter)
(begin (asserts! (not (is-voter tx-sender)) (err u409))
(map-set voter-registered tx-sender true)
(var-set total-voters (+ (var-get total-voters) u1)) (ok true)))
(define-public (set-quorum (pct uint))
(begin (asserts! (is-eq tx-sender admin) (err u401))
(asserts! (<= pct u100) (err u400)) (var-set quorum-pct pct) (ok true)))