Requests
Authentication request management endpoints
Creates a new authentication request that can be executed by the auth dapp.
Important:
The
authChainfield is required and will be validated.Signature validation is performed using
@dcl/cryptoAuthenticator.The
dcl_personal_signmethod is rejected, as is signing a Decentraland ephemeral message under any other method. Ordinarypersonal_sign/eth_signrequests are accepted.The request will expire after the configured expiration time (default: 5 minutes).
Wallet method to execute (e.g., 'eth_sendTransaction', 'personal_sign')
personal_signRequest created successfully
Unique request identifier
Request expiration time (ISO 8601). Request must be consumed before this time.
Random verification code (0-99) for visual confirmation on both client and auth dapp
Invalid request (missing required fields, invalid authChain, signature validation failed)
POST /requests HTTP/1.1
Host: auth-api.decentraland.org
Content-Type: application/json
Accept: */*
Content-Length: 263
{
"method": "personal_sign",
"params": [
"Message to sign",
"0x1234567890123456789012345678901234567890"
],
"authChain": [
{
"type": "SIGNER",
"payload": "0x1234567890123456789012345678901234567890",
"signature": ""
},
{
"type": "ECDSA_EPHEMERAL",
"payload": "...",
"signature": "..."
}
]
}{
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"expiration": "2024-01-01T12:10:00.000Z",
"code": 42
}Polls for the outcome of an authentication request.
This endpoint can be used as an alternative to WebSocket for receiving request outcomes. The client should poll this endpoint periodically until a result is returned.
Status Codes:
200: Request completed, outcome returned204: Request not yet completed, continue polling404: Request not found410: Request expired
Request ID to poll for
550e8400-e29b-41d4-a716-446655440000Request completed with outcome
Request not yet completed (continue polling)
Request not found
Request expired
GET /requests/{requestId} HTTP/1.1
Host: auth-api.decentraland.org
Accept: */*
{
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"sender": "0x1234567890123456789012345678901234567890",
"result": "0xabcdef1234567890..."
}Submits the outcome of a previously created request. If the request originated from a WebSocket client, the server will immediately emit the outcome event to that client and delete the request. Otherwise, the outcome is stored for later retrieval via polling.
Request ID to submit outcome for
Outcome accepted
No content
Bad request (invalid body or request already has a response)
Request not found
Request expired
POST /v2/requests/{requestId}/outcome HTTP/1.1
Host: auth-api.decentraland.org
Content-Type: application/json
Accept: */*
Content-Length: 88
{
"sender": "0x1234567890123456789012345678901234567890",
"result": "0xabcdef1234567890..."
}No content
Returns whether a request requires additional validation.
Request ID to check
Validation status
Whether this request requires additional validation
Request not found
Request expired
GET /v2/requests/{requestId}/validation HTTP/1.1
Host: auth-api.decentraland.org
Accept: */*
{
"requiresValidation": true
}Notifies that the request requires additional user validation (e.g., visual code confirmation).
If the requester is connected via WebSocket, the server relays a request-validation-status event to that client.
Request ID to notify
Notification accepted (no content)
No content
Request not found
Request expired
POST /v2/requests/{requestId}/validation HTTP/1.1
Host: auth-api.decentraland.org
Accept: */*
No content
Retrieves the details of an authentication request for execution.
This endpoint is used by the auth dapp to recover request information before executing it. The request must exist, not be expired, and pass IP address validation (if applicable).
Request ID to retrieve
550e8400-e29b-41d4-a716-446655440000Request details retrieved successfully
Request expiration time
Request verification code
Original method that was requested
Sender address derived from auth chain (if applicable)
0x1234567890123456789012345678901234567890IP validation failed
Request not found
Request expired
GET /v2/requests/{requestId} HTTP/1.1
Host: auth-api.decentraland.org
Accept: */*
{
"expiration": "2024-01-01T12:10:00.000Z",
"code": 42,
"method": "personal_sign",
"params": [
"Message to sign",
"0x1234567890123456789012345678901234567890"
],
"sender": "0x1234567890123456789012345678901234567890"
}Last updated