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

Guides

Hands-on walkthroughs, each grounded in the real on-chain signatures. Follow them in order for an end-to-end path from nothing to a running, bounded agent — or jump to the one you need.

  1. Write your first permission — a minimal IPermission, line by line.

  2. Deploy an SMA — create a Safe with the kernel enabled, and derive its deterministic address.

  3. Register a mandate & appoint a manager — sign and submit permission registration.

  4. Dispatch a transaction within bounds — execute a call, and see what a denial looks like.

  5. Use a shared template — configure SharedBoundedSwapPermission end to end.

These guides show the protocol-level mechanics (raw EIP-712 + contract calls). If you'd rather drive all of this from a TypeScript SDK and CLI — with signing, nonce handling, and deployment registries done for you — see the Sailor section. Sailor wraps exactly these flows.

All examples target a kernel already deployed at the address in Reference → Deployment addresses. EIP-712 domain: name = "SailKernel", version = "1", verifyingContract = the kernel, chainId = your chain.

Last updated