Skip to main content
POST
Verify signature and authenticate

Body

application/json
address
string
required

Ethereum wallet address

Required string length: 42
Pattern: ^0x[0-9a-fA-F]{40}$
Example:

"0x742d35Cc6634C0532925a3b8D4060f31E2C3d8B5"

signature
string
required

Wallet authorization of the challenge message, hex with an optional 0x prefix. An EOA sends a 65-byte EIP-191 signature; a contract wallet verified under EIP-1271 sends whatever its own contract accepts, which is usually longer and need not be 65 bytes. Capped at 8192 decoded bytes (16386 characters with the prefix) — enough for well over a hundred owner slots — and a longer value is rejected as an invalid signature rather than forwarded to the chain.

Required string length: 1 - 16386
Example:

"0x1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"

nonce
string
required

Challenge nonce

Minimum string length: 1
Example:

"abc123def456"

sessionPublicKey
string
required

Lowercase hex (64 chars) ed25519 public key generated locally by the SDK. Subsequent authenticated requests are signed with the matching private key. The wallet's signature on the challenge message proves the user authorized this specific public key.

Required string length: 64
Pattern: ^[0-9a-f]{64}$
Example:

"3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29"

clientId
string | null

Optional application identifier

Example:

"monaco-frontend"

chainId
string | null

Optional chain ID supplied by SDK clients

Example:

"1328"

referralCode
string | null

Optional PitPass TraderCode captured at signup (e.g. from a ?ref=CODE link). When a user verifies for the very first time with a valid code, a referral relationship is recorded atomically. Ignored for users who already exist, and silently ignored if the code is unknown — a bad code never blocks sign-in.

Example:

"0x1234567890abcdef1234567890abcdef12345678"

Response

OK

expiresAt
integer<int32> | null

Unix timestamp when the session expires

Example:

1699876543

user
object
isNewUser
boolean | null

True when this verify created the user row — the wallet's first sign-in to THIS application. Identity is per (wallet, application), so a wallet already registered on another application is still is_new_user on its first sign-in to a new one. Use it to gate first-time UX (e.g. showing the optional "have a referral code?" input only to new users) and to confirm a fresh sign-up. False for every returning verify on this application.

Example:

true

referralApplied
boolean | null

True when a PitPass referral relationship was recorded on this verify: a valid, non-self TraderCode presented on the wallet's first sign-in to THIS application resolved to a known referrer. Scoped like is_new_user (per (wallet, application)), so a wallet already registered on another application can still see this on its first sign-in to a new one. False for a returning user of this application, an absent or unknown code, or a self-referral. Confirms the referral landed for the signup success screen.

Example:

true