Skip to main content
POST
Verify And Create Wallet

Authorizations

x-juno-jwt
string
header
required

JWT issued by Dynamic Labs or Privy. Sent in the x-juno-jwt header on every authenticated request.

Headers

x-juno-orgid
string | null

Tenant org ID for multi-tenant auth

x-juno-jwt
string | null
x-sumvin-token
string | null
x-sumvin-pat
string | null
X-Timestamp-Format
string

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.

Example:

"iso8601"

Body

application/json
message
string
required

EIP-4361 formatted SIWE message string

Required string length: 1 - 4096
signature
string
required

0x-prefixed 65-byte hex signature (130 hex chars + 0x prefix)

Required string length: 132
Pattern: ^0x[0-9a-fA-F]{130}$
chain_id
enum<integer>
required

Chain on which the SIWE message was signed. Sei mainnet (1329) in production; Sei testnet (1328) in non-production.

Available options:
1329,
1328
Example:

1329

nickname
string | null

Optional wallet nickname

Maximum string length: 100

Response

Wallet verified and created

HAL-style hypermedia links for navigation.

id
string
required

Public wallet identifier.

address
string
required

Wallet address (EOA or Safe).

chain_id
integer
required

Blockchain chain ID where this wallet exists. Must be 1329 (Sei mainnet).

is_primary
boolean
required

True if this is the user's primary wallet for this type.

is_eoa
boolean
required

True for EOA (Externally Owned Account), false for Safe smart wallet.

created_at
integer
required

Wallet creation timestamp (epoch milliseconds).

signer_role
enum<string> | null

Set when this address is registered as a signer on the account's Safe rather than being a wallet the account holder transacts from. Absent on an ordinary wallet, and absent on a wallet that predates the field.

Available options:
cli_mandate_key
signer_status
enum<string> | null

How far the signer registration has got. pending while the owner addition is in flight, active once the address has been confirmed in the Safe's owner set on chain, failed if it terminally did not land. active and failed are the only settled values — poll until one of them appears. Absent on a wallet that is not a registered signer.

Available options:
pending,
active,
failed
signer_error_code
string | null

Why the registration failed, as the same error code the API returns elsewhere. Present only alongside signer_status: failed.

signer_error_reason
string | null

Human-readable detail for a failed registration. Present only alongside signer_status: failed.

nickname
string | null

User-defined friendly name for the wallet.

logo_uri
string | null

URI to the blockchain's logo image.

deleted_at
integer | null

Soft deletion timestamp (epoch milliseconds).

safe_creation_event_id
string | null

Event ID for tracking Safe creation. Only present in 202 Accepted responses when Safe creation is triggered.

cards
CardData · object[] | null

Linked payment cards. Only included when expand=cards is specified.