Source Code

;; User Profiles - Manage user profiles

(define-map profiles
  principal
  {
    username: (string-ascii 50),
    bio: (string-utf8 200),
    created-at: uint
  }
)

(define-public (create-profile (username (string-ascii 50)) (bio (string-utf8 200)))
  (begin
    (map-set profiles tx-sender {
      username: username,
      bio: bio,
      created-at: stacks-block-height
    })
    (ok true)
  )
)

(define-public (update-bio (bio (string-utf8 200)))
  (let ((profile (unwrap! (map-get? profiles tx-sender) (err u404))))
    (map-set profiles tx-sender (merge profile { bio: bio }))
    (ok true)
  )
)

(define-read-only (get-profile (user principal))
  (map-get? profiles user)
)

Functions (3)

FunctionAccessArgs
create-profilepublicusername: (string-ascii 50
update-biopublicbio: (string-utf8 200
get-profileread-onlyuser: principal