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:

  1. Block or allow incoming and outgoing transactions on the account,

  2. Modify and maintain internal state and logic specific to the hook on that account, and

  3. 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.

Term
Explanation

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