For the complete documentation index, see llms.txt. This page is also available as Markdown.

Glossary

Precise definitions of the terms used throughout these docs. Where a term maps to a code identifier, that is noted.

SMA (Separately Managed Account) — A Safe smart account registered with SailKernel, with the kernel enabled as a Safe module. Holds the owner's capital self-custodially.

Owner — The party that holds the Safe and custodies the SMA's capital, via the Safe's own owners and threshold. Can always revoke the manager.

Permission Signer — The address whose EIP-712 signatures authorize permission-registry operations (register, configure, replace, revoke, session, fee-policy). AccountConfig.permissionSigner. Cannot move assets.

Manager — The address whose EIP-712 signatures authorize dispatches. AccountConfig.manager. May be an EOA, multisig, MPC wallet, or autonomous agent. Cannot change the mandate.

Submitter — The msg.sender of a dispatch; the address that pays gas. Not an authority role; may be a relayer. Exposed to permissions as ctx.submitter.

Mandate — The set of permission contracts registered for an SMA. Defines what the manager is authorized to do. Not a document; a set of contracts.

Permission — A contract implementing IPermission that decides whether a given call is allowed, via evaluate(txData, ctx) → bool.

Template — A reusable permission implementation. Shared (multi-tenant) templates serve many accounts from one deployment, each configured independently; standalone templates are one instance per account.

Dispatch — A manager-signed request to execute one call through the SMA, naming one registered permission as its authorizer. SailKernel.dispatch(...).

Batch dispatch — A manager-signed request to execute an ordered array of calls atomically, gated by one batch-aware permission (IBatchPermission). SailKernel.dispatchBatch(...).

Selective authorization — The model in which the manager's signature names one registered permission and only that permission is evaluated.

Fail-closed — The property that any permission failure (false, revert, OOG, malformed return) reverts the whole dispatch. Deny-by-default.

Context / ctx — The read-only snapshot of the dispatch environment passed to a permission's evaluate (account, manager, submitter, target, selector, value, blockTimestamp, blockNumber).

KernelSailKernel, the single trusted execution contract. Registers accounts, holds the permission registry, verifies signatures, dispatches to the Safe, accounts for fees.

Fee policy — A contract implementing IFeePolicy that computes the maximum collectable fee for an account and records collection state. The reference implementation is StandardFeePolicy.

Protocol cut — The protocol's share of a manager-collected fee, in basis points, bounded by the immutable cap MAX_PROTOCOL_CUT_BPS = 2500 (25%). Zero at launch.

Registration fee — A flat native-token fee charged per permission registration, bounded by the immutable cap MAX_PERMISSION_FEE_WEI (≤ 0.01 native). Live at launch (0.00015 native; higher on BSC and HyperEVM).

High-water mark (HWM) — The highest NAV seen at collection time for an account; StandardFeePolicy charges performance fees only on gains above it.

NAV — Net asset value, supplied by the manager at fee collection. Not independently verified by the kernel; the fee policy is the guard against inflated NAV.

Timelock — The standalone TimelockController (48-hour delay) through which all governance parameter changes flow.

PERMISSION_GAS_CAP — The fixed gas budget (150_000) for each permission's evaluate staticcall. BATCH_EVAL_GAS_CAP (1_000_000) is the batch equivalent.

boundSaltkeccak256(saltNonce, caller, permissionSigner, manager, feePolicy), the salt that binds an SMA's CREATE2 address to its principals.

Last updated