# Splits Splits is financial infrastructure for onchain builders and startups. Splits Treasury and Splits Personal are self-custodied multichain account products that combine banking operations (payroll, vendor payments, bank transfers, accounting) with programmable custody (multi-sig by default, passkey authentication, programmable recovery). Splits also maintains an open-source contract suite (Split, Waterfall, Swapper) that powers onchain payment flows. ## Products ### Splits Treasury: Business banking for onchain startups - [Product page](https://splits.org/treasury) - [App](https://teams.splits.org/) — sign in or register, no paperwork - [Guidebook](https://splits.notion.site/guidebook) Self-custodied multichain accounts with passkey auth and multi-sig by default. Configurable approval thresholds, subaccounts per revenue stream or project, automated token swaps on receipt, payroll, recurring vendor payments, bank transfers, fiat on/offramps, integrated yield, accounting exports, and read-only accountant access. ### Splits Personal: A wallet purpose-built for builders - [Product page](https://splits.org/personal) - [App](https://teams.splits.org/) — sign in or register, no paperwork - [Guidebook](https://splits.notion.site/guidebook) Self-custodied multichain wallets with passkey auth and multi-sig by default. Configurable approval thresholds, programmable recovery (hardware wallets, trusted contacts, timelocked backups), subaccounts, bank transfers, and fiat on/offramps. ## Agent access The CLI is the primary programmatic entry point. It ships with a built-in MCP server exposing the same surface, so anything a human can do in the app, an agent can do through the CLI or MCP. - npm: https://www.npmjs.com/package/@splits/splits-cli - Full command surface without installing: `npx @splits/splits-cli@latest --llms-full` - Install: `npm install -g @splits/splits-cli` ### Bootstrap as a signer To act on a human's account, you (the agent) need your own key registered as a signer on their account. Steps: 1. The human creates an API key at https://teams.splits.org/settings/team/api-keys/ and provides it to you. This step is browser-only — there is no programmatic route. 2. Run `splits auth login` with that key. 3. Run `splits auth create-key --register` to generate your EOA and register it as a signer candidate. The command returns your signer id. 4. Give the signer id to the human. They run `splits accounts update-signers --addEoaSignerIds `, which creates a proposal and returns a `signUrl`. The human opens the URL and approves in the web app. 5. Once approved, you can sign transactions with your own key, subject to whatever thresholds and policies the human configured. See `npx @splits/splits-cli@latest --llms-full` for the full command surface, flags, and MCP tool list. ### Create a new account with both signers Alternative to "Bootstrap as a signer". Instead of joining an existing account, create a new subaccount with you and the human as signers from the start. The web-approval step disappears — the subaccount is born with the right signer set, so no proposal or `signUrl` is involved. Prerequisites: steps 1–3 above (human-minted API key, `auth login`, your EOA registered via `auth create-key --register`). 1. Find the human's user id: `splits members list`. 2. Find the human's passkey signer id: `splits members signers `. 3. Create the subaccount: `splits accounts create --name "