Skip to main content
Sage builds entirely on Squads Protocol V4, the audited multisig program for Solana. Sage adds no custom on-chain program of its own — it composes the Squads instructions and supplies the second signer.

Program

Multisig Layout

Each user gets one Squads multisig with two members and a threshold of 1: The server is added as a member at creation but holds only Execute — it can never initiate a transfer, only push through what the user has proposed and what passed screening.

Deterministic Vaults

The vault address is derived deterministically per user, so a login from any device resolves the same vault:
If the multisig already exists on-chain, /sponsor/create returns the existing PDAs instead of re-creating.

PDAs

Sage is the fee payer and rent collector for the full lifecycle. The user never needs SOL. The multisig is created with rentCollector = server, so rent from completed proposals returns to the sponsor.

SDK Wrappers

The src/ package wraps the Squads SDK for tests and reuse: The canonical end-to-end agentic co-signer flow is covered in tests/reference/transfer-flow.test.ts.
Always verify the Squads program ID against the official Squads documentation before deploying to mainnet.