Skip to main content
POST
curl

Path Parameters

token
string
required

Opaque session token returned when the widget session was minted.

Body

application/json
method
enum<string>
required

The proof method the end user picked. It must be one of the context's allowed_methods.

Available options:
MESSAGE_SIGNING,
SATOSHI_TEST,
SCREENSHOT,
SELF_DECLARATION
wallet_address
string

Defaults to the session's wallet_address. Must match the transfer's wallet when the session is linked to a transfer.

Maximum string length: 128
chain
string

Defaults to the session's chain.

Maximum string length: 32

Response

The proof already open for this method, resumed.

proof_id
string<uuid>
method
enum<string>
Available options:
MESSAGE_SIGNING,
SATOSHI_TEST,
SCREENSHOT,
SELF_DECLARATION
status
enum<string>

PENDING: the end user picked this method and the proof is not decided yet. A failed signature or a test deposit that is not readable or confirmed yet keeps the proof PENDING with a failure_reason, so the end user can try again; a submitted SATOSHI_TEST deposit is rechecked automatically until its window closes, and a submitted SCREENSHOT waits for your review. VERIFIED: ownership is proven. REJECTED: the test deposit is genuinely wrong (another sender, not the expected amount to the deposit address, older than the challenge, or a transaction that already proved another wallet) or your reviewer rejected the screenshot; failure_reason says which. A rejected proof is final and uses one of the session's attempts. EXPIRED: the proof can no longer be decided (its window closed, the end user switched method, the widget session lapsed, or the wallet's holder changed); failure_reason says which.

Available options:
PENDING,
VERIFIED,
REJECTED,
EXPIRED
wallet_address
string
chain
string

Canonical chain identifier of the address book entry the proof is for, e.g. ETH, BTC, SOL, TRX.

deposit_address
string | null

Deposit address the customer must send the Satoshi test amount to. Present only on a SATOSHI_TEST proof.

expected_amount
string | null

Exact on-chain amount, in the deposit's native currency, the Satoshi test deposit must match. Present only on a SATOSHI_TEST proof.

expires_at
string<date-time> | null

Deadline for this proof's own Satoshi test window. Present only on a SATOSHI_TEST proof; the widget session's own expires_at is extended to cover it when SATOSHI_TEST is offered.

challenge
string | null

Didit-issued message the customer signs with their wallet. Present only on a MESSAGE_SIGNING proof.

rejection_reason
string

Why the proof was rejected, as an English sentence for the end user. Present only when status is REJECTED; empty when your reviewer rejected a screenshot (your note stays with you).

created_at
string<date-time>
attempts
integer

How many times evidence was submitted for this proof (signatures, transaction ids, uploads).

failure_reason
enum<string>

Why the last attempt fell short, or why the proof closed. Empty when nothing failed.

Available options:
,
SIGNATURE_INVALID,
SIGNATURE_UNSUPPORTED_SCHEME,
DEPOSIT_NOT_FOUND,
DEPOSIT_UNCONFIRMED,
DEPOSIT_LOOKUP_FAILED,
DEPOSIT_MISMATCH,
DEPOSIT_STALE,
TXID_REUSED,
CHAIN_UNSUPPORTED,
WINDOW_EXPIRED,
OWNERSHIP_CHANGED,
METHOD_SWITCHED,
REVIEW_REJECTED,
ABANDONED