Source Code

;; simple-sip010-token.clar
;; Minimal SIP-010-like fungible token (not fully featured).

(define-constant ERR-NOT-AUTH u401)
(define-constant ERR-INSUFFICIENT u402)

(define-fungible-token simple-token)

(define-data-var owner principal tx-sender)
(define-data-var name (string-ascii 32) "Simple Token")
(define-data-var symbol (string-ascii 10) "SIMP")
(define-data-var decimals uint u6)

(define-public (mint (amount uint) (recipient principal))
  (if (is-eq tx-sender (var-get owner))
    (begin
      (try! (ft-mint? simple-token amount recipient))
      (ok true))
    (err ERR-NOT-AUTH)))

(define-public (transfer (amount uint) (sender principal) (recipient principal) (memo (optional (buff 34))))
  (if (is-eq tx-sender sender)
    (match (ft-transfer? simple-token amount sender recipient)
      ok-val (ok true)
      err-val (err ERR-INSUFFICIENT))
    (err ERR-NOT-AUTH)))

(define-read-only (get-name) (ok (var-get name)))
(define-read-only (get-symbol) (ok (var-get symbol)))
(define-read-only (get-decimals) (ok (var-get decimals)))
(define-read-only (get-balance (who principal)) (ok (ft-get-balance simple-token who)))
(define-read-only (get-total-supply) (ok (ft-get-supply simple-token)))

Functions (7)

FunctionAccessArgs
mintpublicamount: uint, recipient: principal
transferpublicamount: uint, sender: principal, recipient: principal, memo: (optional (buff 34
get-nameread-only
get-symbolread-only
get-decimalsread-only
get-balanceread-onlywho: principal
get-total-supplyread-only