Terminology
Welcome to Hooks 👋
What are Hooks?
Hooks are small, efficient web assembly modules designed specifically for Xahau. Hooks can be written in any language (compilable to WebAssembly) and most business logic and most smart contract concepts can be implemented in a hook. Typically Hooks are written in C.
Hooks are set onto an Xahau account using a SetHook
transaction. Once installed on an account, a hook can:
Block or allow incoming and outgoing transactions on the account,
Modify and maintain internal state and logic specific to the hook on that account, and
Emit new transactions on behalf of the account.
Glossary
This Hooks documentation and the Hooks API use a set of unfamiliar terms. Use the lookup table below if you find yourself lost.
Hook
Originating Transaction
The transaction that triggered the Hook to fire. This could be either a transaction sent out of or into an account with a Hook set on it.
Originating Account
The account that sent an Originating Transaction.
Hook Account
Installer
The account which is currently installing a Hook using the SetHook transaction.
Emitted Transaction
State
SetHook
Guards
Grants
Special permission a Hook Installer can give another account or a specific Hook (regardless of where it is installed) to modify Hook State on the Installer's account.
Namespace
A unique 32 byte code delineating one set of state keys from another. The same state key may be used by two different Hooks without interfering with each-other if the namespaces set on the Hooks are different.
Parameters
Install-time parameters that can be optionally set on a Hook.
Reference Counting
An unowned object on the ledger may be reference counted, meaning it is deleted when the final account which referenced (used) it removes their reference to it.
XFL or Floating Point
Serialized Objects (STO)
Slots and Keylets
Trace
Last updated