Skip to main content
POST
Create authentication challenge

Body

application/json
address
string
required

Ethereum wallet address

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

"0x742d35Cc6634C0532925a3b8D4060f31E2C3d8B5"

sessionPublicKey
string
required

Lowercase hex (64 chars) ed25519 public key generated locally by the SDK. The returned challenge message will embed this key so the wallet's signature binds it; the same value must be submitted to /api/v1/auth/verify.

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"

Response

OK

nonce
string | null

Unique challenge nonce

Example:

"abc123def456"

message
string | null

Message to sign

Example:

"Sign this message to authenticate with Monaco Protocol..."

expiresAt
integer<int32> | null

Unix timestamp when challenge expires

Example:

1699876543