Skip to main content

POST /sponsor/create

Derives a deterministic multisig + vault for the user and creates it on-chain if it doesn’t already exist. The server pays all rent and fees — no SOL required from the user. If the multisig already exists (e.g. the user cleared storage or logged in on a new device), the existing PDAs are returned without re-creating. The multisig is created with two members: the user (Permissions.all()) and the server (Permission.Execute), threshold 1, and rentCollector set to the server.

Request

Response

The vault address is derived deterministically from userPubkey, so this endpoint is idempotent — calling it again returns the same PDAs.