Clarity Keywords
block-height​
Introduced in: Clarity 1
output: uint
description:
Returns the current block height of the Stacks blockchain in Clarity 1 and 2. Upon activation of epoch 3.0, block-height
will return the same value as tenure-height
. In Clarity 3, block-height
is removed and has been replaced with stacks-block-height
.
example:
(> block-height u1000) ;; returns true if the current block-height has passed 1000 blocks.
burn-block-height​
There is a bug in Clarity 3 when burn-block-height
is used within an at-block
expression. Normally, keywords executed within an at-block
expression will return the data for that specified block. This bug causes burn-block-height
to always return the burn block at the current chain tip, even within an at-block
expression. This behavior affects any Clarity 3 contracts and will be fixed in a future hard fork.
Introduced in: Clarity 1
output: uint
description:
Returns the current block height of the underlying burn blockchain as a uint
example:
(> burn-block-height 1000) ;; returns true if the current height of the underlying burn blockchain has passed 1000 blocks.
chain-id​
Introduced in: Clarity 2
output: uint
description:
Returns the 32-bit chain ID of the blockchain running this transaction
example:
(print chain-id) ;; Will print 'u1' if the code is running on mainnet, and 'u2147483648' on testnet, and other values on different chains.
contract-caller​
Introduced in: Clarity 1
output: principal
description:
Returns the caller of the current contract context. If this contract is the first one called by a signed transaction, the caller will be equal to the signing principal. If contract-call?
was used to invoke a function from a new contract, contract-caller
changes to the calling contract's principal. If as-contract
is used to change the tx-sender
context, contract-caller
also changes to the same contract principal.
example:
(print contract-caller) ;; Will print out a Stacks address of the transaction sender
Use caution when leveraging all contract calls, particularly tx-sender and contract-caller as based on the design, you can unintentionally introduce attack surface area. Read more.
false​
Introduced in: Clarity 1
output: bool
description:
Boolean false constant.
example:
(and true false) ;; Evaluates to false
(or false true) ;; Evaluates to true
is-in-mainnet​
Introduced in: Clarity 2
output: bool
description:
Returns a boolean indicating whether or not the code is running on the mainnet
example:
(print is-in-mainnet) ;; Will print 'true' if the code is running on the mainnet
is-in-regtest​
Introduced in: Clarity 1
output: bool
description:
Returns whether or not the code is running in a regression test
example:
(print is-in-regtest) ;; Will print 'true' if the code is running in a regression test
none​
Introduced in: Clarity 1
output: (optional ?)
description:
Represents the none option indicating no value for a given optional (analogous to a null value).
example:
(define-public (only-if-positive (a int))
(if (> a 0)
(some a)
none))
(only-if-positive 4) ;; Returns (some 4)
(only-if-positive (- 3)) ;; Returns none
(print stx-liquid-supply) ;; Will print out the total number of liqui
stacks-block-height
Introduced in: Clarity 3
output: uint
description:
Returns the current Stacks block height.
example:
(print stacks-block-height) ;; Will print out the current Stacks block height
stx-liquid-supply​
Introduced in: Clarity 1
output: uint
description:
Returns the total number of micro-STX (uSTX) that are liquid in the system as of this block.
example:
(print stx-liquid-supply) ;; Will print out the total number of liquid uSTX
tenure-height
Introduced in: Clarity 3
output: uint
description:
Returns the number of tenures that have passed. When the Nakamoto block-processing starts, this will be equal to the chain length.
example:
(print tenure-height) ;; Will print out the current tenure height
true​
Introduced in: Clarity 1
output: bool
description:
Boolean true constant.
example:
(and true false) ;; Evaluates to false
(or false true) ;; Evaluates to true
tx-sender​
Introduced in: Clarity 1
output: principal
description:
Returns the original sender of the current transaction, or if as-contract
was called to modify the sending context, it returns that contract principal.
example:
(print tx-sender) ;; Will print out a Stacks address of the transaction sender
Use caution when leveraging all contract calls, particularly tx-sender and contract-caller as based on the design, you can unintentionally introduce attack surface area. Read more.
tx-sponsor?​
Introduced in: Clarity 2
output: optional principal
description:
Returns the sponsor of the current transaction if there is a sponsor, otherwise returns None.
example:
(print tx-sponsor?) ;; Will print out an optional value containing the Stacks address of the transaction sponsor
Last updated
Was this helpful?