Skip to main content
An agent signer is a per-user P-256 key that Sumvin holds in KMS and registers as an authorised owner on the user’s Safe, so an AI agent can sign a on the user’s behalf. The user’s wallet key is never exposed. A Stamped Mandate is delivered over the API as a PINT (header x-sumvin-pint-token).

Agent signers and other Safe owners

An agent signer is not the only key that can own a Safe. A CLI mandate key is an externally owned account the Sumvin CLI generates and keeps on the developer’s own machine, registered as an owner on the same Safe so that mandates signed locally still verify as the user. The two are different things, and the vocabulary is kept separate on purpose. Both sit in the Safe’s owner set on chain, and a mandate signed by either verifies as the user through the Safe’s EIP-1271 path. What distinguishes them on a given mandate is its scopes: sr:us:pint:cli:delegate_sign marks a mandate the developer signed locally, and sr:us:pint:cli:add_signer marks one the agent signer produced to add to the Safe’s owner set. Token exchange refuses any mandate whose marker disagrees with who signed it — see Scopes.
The two status vocabularies overlap but do not mean the same thing, and no API returns one where the other is expected. key_created describes an agent signer’s key material and has no counterpart on a CLI mandate key, whose status tracks only whether the owner-add has landed on chain.

What a verifier sees

An agent-signed Stamped Mandate verifies as the user through the Safe’s EIP-1271 isValidSignature path. To a verifier it is otherwise indistinguishable from a user-signed mandate — the same Safe, the same scopes, the same revocation surface. The only difference is that the JWT carries signer_type: "agent".

Agent signer status

Treat any value other than active as not ready to sign. The field is also defined with pending and contract_deployed, which no provisioning path writes today; a signer that has not yet reached active reports key_created.

See also