Submit Onboarding Safe
Authorizations
Personal access token issued to the Sumvin CLI. Send it in the x-sumvin-pat header to authenticate as the owning user.
Headers
Optional idempotency key. Retrying the same request with the same key returns the original cached response. Reusing a key with a different request body returns 409 Conflict. Cached for 24h.
255Tenant org ID for multi-tenant auth
Controls how timestamp fields are serialized in JSON response bodies.
Default (header omitted or any other value): epoch milliseconds as integers.
iso8601: UTC ISO 8601 strings of the form YYYY-MM-DDTHH:MM:SSZ.
Example: with X-Timestamp-Format: iso8601, the field value 1704067200000 becomes "2024-01-01T00:00:00Z".
Affected fields (recursively, in dicts and arrays): any field whose name ends in _at, plus the literal field names timestamp, period_start, and period_end. All other fields are passed through unchanged.
Only iso8601 is recognized. Any other value (or omitting the header) yields the default epoch-ms representation; the server does not reject unknown values, so this is documented as an example rather than an enum to keep generated clients permissive.
"iso8601"
Body
- BYOSubmission
- UserSignedDeploySubmission
- AgentCreate2Submission
Submission payload for the Bring-Your-Own-Safe cohort.
Pydantic narrows by required field — the presence of address selects this
variant of the request body union.
EVM address of the existing Safe. The service layer enforces format validation (regex) and verifies the contract on-chain.
"0x000000000000000000000000000000000000dead"
Response
Submission accepted for the byo cohort; the response carries the post-mutation Safe state.
Response for GET/POST /v0/user/me/onboarding/safe.
The mode field selects which Safe-onboarding flow applies to the
user. The config field always carries the cohort-specific data
the client needs to render or complete the step — its shape matches
mode (clients switch once on config.mode and read inner
fields, which may be null when no work is currently prepared). The
wallet field is populated once the Safe has been persisted; null
otherwise.
HAL-style hypermedia links for navigation and available actions.
Which Safe-onboarding flow applies. 'user_signed_deploy' when the user signs the deploy UserOp; 'byo' when the user submits an existing Safe address; 'agent_create2' when the agent signer workflow handles deployment.
user_signed_deploy, byo, agent_create2 Cohort config for a user signing a CREATE2 deploy UserOp themselves.
The chain ID is the user's onboarding-selected primary chain; null when
the user has not yet selected one (e.g., partway through onboarding
before chain selection is persisted). The envelope fields (predicted
Safe address, prepared UserOp, paymaster sponsorship) are populated
only after the server has prepared a fresh sponsored UserOp; they are
null when no work is currently prepared (e.g., before the user reaches
the step or while a previous prepare is still in flight). The
signature field on user_operation is empty — clients sign and
re-submit.
- UserSignedDeployData
- BYOConfigData
- AgentCreate2ConfigData
True when the user still needs to act on this step. False once the step is completed, skipped, or does not apply to this user.
Status of this onboarding step.
completed, submitted, current, pending, skipped Persisted Safe wallet. Populated once the wallet row exists (PENDING for user-signed-deploy after submit; COMPLETED for BYO; set by the signer workflow for agent_create2). Null otherwise.
Chain ID on which the Safe must reside. Null when the user has not yet selected a primary chain (e.g., partway through onboarding before chain selection is persisted).