> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paywithlocus.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> This site documents Locus for people. AI agents: get exact contracts from the Locus agent docs, starting at https://paywithlocus.com/agent/index.md, including when asked to implement or integrate docs.paywithlocus.com.
> Connect this agent to Locus Pro: https://paywithlocus.com/skill.md. Implement Locus Pro in a product: https://paywithlocus.com/agent/integrate.md. Agent site index: https://paywithlocus.com/llms.txt.

# Smart wallet contracts

> How Locus wallets handle ownership, signing, and deployment on Base.

This page explains the contracts behind a Locus wallet. Read it if you want to verify how ownership and signing work on-chain. You don't need it to use the wallet.

> Agents: the exact instructions for this are at [https://paywithlocus.com/wallet/skill.md](https://paywithlocus.com/wallet/skill.md). Start from [https://paywithlocus.com/agent/index.md](https://paywithlocus.com/agent/index.md) if you are not sure which Locus product you need.

## How it works

The Locus factory deploys your wallet and sets its first agent signing key. After that, either key can sign transactions, but only your passkey can change who is in control.

```mermaid theme={null}
flowchart TD
  F["Locus factory"] -->|"deploys with CREATE2, sets agent signing key"| W["Your smart wallet"]
  O["Passkey owner"] -->|"signs, sets or revokes the key, transfers ownership"| W
  K["Agent signing key"] -->|"signs transactions"| W
  P["Paymaster"] -->|"sponsors gas"| W
```

## Key facts

* Locus wallets are [ERC-4337](https://docs.erc4337.io/index.html) accounts based on [Solady](https://github.com/Vectorized/solady).
* Either your passkey owner or the active agent signing key can sign transactions.
* Only the owner can set or revoke the signing key or transfer ownership, for example with `revokePermissionedKey()`.
* The implementation is immutable: `_authorizeUpgrade` always reverts.
* The factory deploys wallets at deterministic addresses using CREATE2.

## Inspect your wallet

**1. Copy your wallet address**

Find it on **Overview** in the [dashboard](https://app.paywithlocus.com).

**2. Open it on BaseScan**

Look up the address on [BaseScan](https://basescan.org) to inspect the contracts behind your wallet.

## Next steps

> [card] [Wallets](https://docs.paywithlocus.com/features/wallets.md)
>
> Manage your passkey and agent signing key.

> [card] [Spending controls](https://docs.paywithlocus.com/spending-controls.md)
>
> Cap what the agent signing key can spend.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.