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.
Write your first permission — a minimal
IPermission, line by line.Deploy an SMA — create a Safe with the kernel enabled, and derive its deterministic address.
Register a mandate & appoint a manager — sign and submit permission registration.
Dispatch a transaction within bounds — execute a call, and see what a denial looks like.
Use a shared template — configure
SharedBoundedSwapPermissionend 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


