id,category,name,syntax,description,example,notes
1,types,uint,"uint","Unsigned integer (0 to 2^128-1)","(define-data-var counter uint u0)","Use u prefix for literals"
2,types,int,"int","Signed integer (-2^127 to 2^127-1)","(define-data-var balance int 0)","Can be negative"
3,types,bool,"bool","Boolean true/false","(define-data-var active bool true)","true or false only"
4,types,principal,"principal","Stacks address or contract","tx-sender","SP... or ST... format"
5,types,buff,"(buff n)","Fixed-length byte buffer","(buff 32)","Max 1MB"
6,types,string-ascii,"(string-ascii n)","ASCII string","(string-ascii 50)","ASCII chars only"
7,types,string-utf8,"(string-utf8 n)","UTF-8 string","(string-utf8 100)","Unicode support"
8,types,list,"(list n type)","Fixed-length list","(list 10 uint)","Homogeneous types"
9,types,tuple,"{ key: type }","Named fields","{ name: (string-ascii 50), age: uint }","Like struct"
10,types,optional,"(optional type)","Maybe value","(optional uint)","some/none"
11,types,response,"(response ok-type err-type)","Result type","(response bool uint)","ok/err"
12,functions,define-public,"(define-public (name (arg type)) body)","Public function","(define-public (transfer (amount uint)) (ok true))","Callable externally"
13,functions,define-read-only,"(define-read-only (name) body)","Read-only function","(define-read-only (get-balance) (ok u100))","No state changes"
14,functions,define-private,"(define-private (name) body)","Private function","(define-private (helper) u1)","Internal only"
15,functions,define-data-var,"(define-data-var name type value)","State variable","(define-data-var owner principal tx-sender)","Mutable storage"
16,functions,define-map,"(define-map name key-type value-type)","Key-value map","(define-map balances principal uint)","Persistent storage"
17,functions,define-constant,"(define-constant name value)","Constant value","(define-constant ERR-UNAUTHORIZED (err u401))","Immutable"
18,functions,define-fungible-token,"(define-fungible-token name supply?)","Create FT","(define-fungible-token MY-TOKEN u1000000)","SIP-010 base"
19,functions,define-non-fungible-token,"(define-non-fungible-token name type)","Create NFT","(define-non-fungible-token MY-NFT uint)","SIP-009 base"
20,control,if,"(if condition then else)","Conditional","(if (> x u0) u1 u0)","Both branches required"
21,control,match,"(match opt (some val) expr none-expr)","Pattern match","(match (get-user) user (ok user) (err u404))","Optional/response"
22,control,let,"(let ((var val)) body)","Local binding","(let ((x u1) (y u2)) (+ x y))","Scoped variables"
23,control,begin,"(begin expr1 expr2 ...)","Sequence","(begin (print ""hi"") (ok true))","Returns last"
24,control,asserts!,"(asserts! condition error)","Assert or abort","(asserts! (is-eq tx-sender owner) ERR-UNAUTHORIZED)","Stops execution"
25,control,try!,"(try! response)","Unwrap or propagate","(try! (ft-transfer? token u100 from to))","Early return on err"
26,control,unwrap!,"(unwrap! opt error)","Unwrap or error","(unwrap! (map-get? users id) ERR-NOT-FOUND)","Must succeed"
27,control,unwrap-panic,"(unwrap-panic opt)","Unwrap or panic","(unwrap-panic (some u1))","Use carefully"
28,arithmetic,+,"(+ a b ...)","Addition","(+ u1 u2 u3)","Auto-checks overflow"
29,arithmetic,-,"(- a b)","Subtraction","(- u10 u5)","Returns uint if uint"
30,arithmetic,*,"(* a b ...)","Multiplication","(* u5 u3)","Auto-checks overflow"
31,arithmetic,/,"(/ a b)","Division","(/ u10 u2)","Integer division"
32,arithmetic,mod,"(mod a b)","Modulo","(mod u10 u3)","Remainder"
33,comparison,is-eq,"(is-eq a b)","Equality check","(is-eq tx-sender owner)","Works with all types"
34,comparison,>,"(> a b)","Greater than","(> u5 u3)","true or false"
35,comparison,<,"(< a b)","Less than","(< u3 u5)","true or false"
36,comparison,>=,"(>= a b)","Greater than or equal","(>= u5 u5)","true or false"
37,comparison,<=,"(<= a b)","Less than or equal","(<= u3 u5)","true or false"
38,logic,and,"(and expr1 expr2 ...)","Logical AND","(and (> x u0) (< x u100))","Short-circuits"
39,logic,or,"(or expr1 expr2 ...)","Logical OR","(or (is-eq x u1) (is-eq x u2))","Short-circuits"
40,logic,not,"(not expr)","Logical NOT","(not (is-eq x u0))","Inverts boolean"
41,map-functions,map-set,"(map-set map key value)","Set map entry","(map-set balances user u100)","Creates or updates"
42,map-functions,map-get?,"(map-get? map key)","Get map value","(map-get? balances user)","Returns optional"
43,map-functions,map-delete,"(map-delete map key)","Delete map entry","(map-delete balances user)","Removes key"
44,map-functions,map-insert,"(map-insert map key value)","Insert if not exists","(map-insert balances user u100)","False if exists"
45,var-functions,var-get,"(var-get var)","Get variable value","(var-get counter)","Returns current value"
46,var-functions,var-set,"(var-set var value)","Set variable value","(var-set counter u10)","Updates value"
47,token-functions,ft-transfer?,"(ft-transfer? token amount from to)","Transfer fungible tokens","(ft-transfer? my-token u100 tx-sender recipient)","Returns response"
48,token-functions,ft-mint?,"(ft-mint? token amount recipient)","Mint fungible tokens","(ft-mint? my-token u1000 recipient)","Increases supply"
49,token-functions,ft-burn?,"(ft-burn? token amount sender)","Burn fungible tokens","(ft-burn? my-token u100 tx-sender)","Decreases supply"
50,token-functions,ft-get-balance,"(ft-get-balance token principal)","Get FT balance","(ft-get-balance my-token user)","Returns uint"
51,token-functions,ft-get-supply,"(ft-get-supply token)","Get total supply","(ft-get-supply my-token)","Returns uint"
52,token-functions,nft-transfer?,"(nft-transfer? nft id from to)","Transfer NFT","(nft-transfer? my-nft u1 tx-sender recipient)","Returns response"
53,token-functions,nft-mint?,"(nft-mint? nft id recipient)","Mint NFT","(nft-mint? my-nft u1 recipient)","Returns response"
54,token-functions,nft-burn?,"(nft-burn? nft id sender)","Burn NFT","(nft-burn? my-nft u1 tx-sender)","Returns response"
55,token-functions,nft-get-owner?,"(nft-get-owner? nft id)","Get NFT owner","(nft-get-owner? my-nft u1)","Returns optional principal"
56,stx-functions,stx-transfer?,"(stx-transfer? amount from to)","Transfer STX","(stx-transfer? u1000000 tx-sender recipient)","Amount in microSTX"
57,stx-functions,stx-burn?,"(stx-burn? amount sender)","Burn STX","(stx-burn? u1000000 tx-sender)","Destroys STX"
58,stx-functions,stx-get-balance,"(stx-get-balance principal)","Get STX balance","(stx-get-balance tx-sender)","Returns uint"
59,contract-functions,contract-call?,"(contract-call? contract function args...)","Call external contract","(contract-call? .other-contract transfer u100)","Returns response"
60,contract-functions,as-contract,"(as-contract expr)","Execute as contract","(as-contract (stx-transfer? u100 tx-sender recipient))","Contract is tx-sender"
61,contract-functions,contract-of,"(contract-of trait-ref)","Get contract principal","(contract-of .token-trait)","Returns principal"