A challenge for a passkey ceremony: sign-in or registration (F-028). No bearer: it reveals no ledger fact.
const url = 'https://example.com/v1/auth/challenge';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"identity":"example","purpose":"authenticate"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/auth/challenge \ --header 'Content-Type: application/json' \ --data '{ "identity": "example", "purpose": "authenticate" }'Request Bodyrequired
Section titled “Request Bodyrequired”POST /v1/auth/challenge (F-028).
object
For register only, optional: the identity whose set the credential will join,
did:aledgent:id:…. A registration over the challenge is then refused with
ERR-CredentialInvalid for any other identity’s set (amendment 0027). Absent, the challenge
is bound to no identity.
Responses
Section titled “ Responses ”A challenge, valid until expires_at, for one ceremony; a register challenge that names an identity serves that identity’s set only.
A challenge (F-028): pass challenge, decoded, as the ceremony’s challenge.
object
The challenge, base64url.
When it expires.
Examplegenerated
{ "challenge": "example", "expires_at": 1}Refused, with the named condition. The status is the alternative’s x-http-status.
- ERR-NotAuthorised
- ERR-AuthorityRevoked
- ERR-CredentialInvalid
- ERR-RecoveryNotElapsed
- ERR-UnboundedGrant
- ERR-BoundExceeded
- ERR-UnknownAccount
- ERR-AccountFrozen
- ERR-AccountClosed
- ERR-AccountNotEmpty
- ERR-IdentityRestricted
- ERR-UnknownAsset
- ERR-AssetDeprecated
- ERR-PrecisionExceeded
- ERR-ZeroAmount
- ERR-InsufficientAvailable
- ERR-AmountMismatch
- ERR-ReleaseUnsafe
- ERR-OperationTerminal
- ERR-InvalidTransition
- ERR-UnknownOperation
- ERR-DeadlineRequired
- ERR-ClientKeyReused
- ERR-BatchTooLarge
- ERR-UnsupportedLeg
- ERR-SettlementLayerUnavailable
- ERR-DecisionUnavailable
- ERR-ObservationDuplicate
- ERR-ObservationUnassociated
- ERR-EvidenceInsufficient
- ERR-JustificationRequired
- ERR-ApprovalRequired
- ERR-DisclosureUnsupported
- ERR-DisclosureFalse
- ERR-NotDisclosable
- ERR-AnchorNotFinal
- ERR-QueryUnbounded
- ERR-MalformedCommand
- ERR-InitialStateNotSealed
- ERR-IdentifierArchived
- ERR-Internal
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "description": "The initiating principal holds no authority that covers this operation, account, asset or bound", "error": "ERR-NotAuthorised"}Refused, with the named condition. The status is the alternative’s x-http-status.
- ERR-NotAuthorised
- ERR-AuthorityRevoked
- ERR-CredentialInvalid
- ERR-RecoveryNotElapsed
- ERR-UnboundedGrant
- ERR-BoundExceeded
- ERR-UnknownAccount
- ERR-AccountFrozen
- ERR-AccountClosed
- ERR-AccountNotEmpty
- ERR-IdentityRestricted
- ERR-UnknownAsset
- ERR-AssetDeprecated
- ERR-PrecisionExceeded
- ERR-ZeroAmount
- ERR-InsufficientAvailable
- ERR-AmountMismatch
- ERR-ReleaseUnsafe
- ERR-OperationTerminal
- ERR-InvalidTransition
- ERR-UnknownOperation
- ERR-DeadlineRequired
- ERR-ClientKeyReused
- ERR-BatchTooLarge
- ERR-UnsupportedLeg
- ERR-SettlementLayerUnavailable
- ERR-DecisionUnavailable
- ERR-ObservationDuplicate
- ERR-ObservationUnassociated
- ERR-EvidenceInsufficient
- ERR-JustificationRequired
- ERR-ApprovalRequired
- ERR-DisclosureUnsupported
- ERR-DisclosureFalse
- ERR-NotDisclosable
- ERR-AnchorNotFinal
- ERR-QueryUnbounded
- ERR-MalformedCommand
- ERR-InitialStateNotSealed
- ERR-IdentifierArchived
- ERR-Internal
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "description": "The initiating principal holds no authority that covers this operation, account, asset or bound", "error": "ERR-NotAuthorised"}Headers
Section titled “Headers”On ERR-DecisionUnavailable (503): seconds to wait before retrying with the same client key (DEC-27 (g)).
© 2026 Pagos Cube LLC · Code: Apache-2.0 OR MIT · agents/: AGPL-3.0-or-later · Docs: CC-BY-4.0