Skip to content

Document withdrawal endpoints and guide - #430

Open
ted-palmer wants to merge 2 commits into
mainfrom
ted/int2-838-withdrawal-docs
Open

Document withdrawal endpoints and guide #430
ted-palmer wants to merge 2 commits into
mainfrom
ted/int2-838-withdrawal-docs

Conversation

@ted-palmer

Copy link
Copy Markdown
Collaborator

No description provided.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CdjhFUoc96H4BT53YwUm8E
@mintlify

mintlify Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
unevenlabs 🟢 Ready View Preview Aug 26, 2026, 7:46 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@github-actions

github-actions Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error after 2m 13s —— View job


Code review in progress

  • Read the PR diff
  • Check against AGENTS.md style guide
  • Verify docs.json nav wiring
  • Post review
    · branch ted/int2-838-withdrawal-docs

@greptile-apps

greptile-apps Bot commented Aug 26, 2026

Copy link
Copy Markdown

Greptile Summary

This change adds public withdrawal API references, navigation, and a guide for preparing, signing, executing, and polling withdrawals. A focused check confirmed that the guide directs BLOCKED_WALLET requests with protocol.isWithdrawable=true into the public withdrawal flow, despite the repository’s execution-error documentation requiring compliance review. The eligibility guidance needs to exclude these requests and route them to review or support before this change is merged.

Confidence Score: 4/5

The documentation is not ready to merge until compliance-blocked withdrawal requests are excluded from the automated recovery instructions.

A focused executed check reproduced the conflicting eligibility outcome using failReason=BLOCKED_WALLET and protocol.isWithdrawable=true, then compared it with the repository’s documented compliance-review requirement.

Files Needing Attention: references/protocol/guides/withdrawals.mdx needs explicit blocked-wallet eligibility handling; references/api/api_core_concepts/execution-errors.mdx establishes the handling the guide must preserve.

T-Rex T-Rex Logs

What T-Rex did

  • The P1 finding proof was submitted with a diff showing the new withdrawal guide eligibility language, a focused validation script, and the BLOCKED_WALLET eligibility validation output.
  • A second P1 finding proof was produced and linked to its review comment.
  • General contract validation confirmed the new guide calls deposits flagged by screening reclaimable and that isWithdrawable is true, with evidence that failReason=BLOCKED_WALLET leads to compliance review rather than an automatic refund.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (1)

  1. General comment

    P1 Withdrawal guide permits compliance-blocked requests into public reclamation

    • Bug
      • The guide at references/protocol/guides/withdrawals.mdx:11,47 says screening-flagged deposits can be reclaimed and directs integrators to use protocol.isWithdrawable=true as the recovery criterion. A BLOCKED_WALLET request satisfying that flag is therefore selected for attestation and withdrawal, even though references/api/api_core_concepts/execution-errors.mdx:25 says its funds are subject to compliance review and are not automatically refunded.
    • Cause
      • The new guide treats screening flags as ordinary recovery candidates and omits a BLOCKED_WALLET/failReason compliance exclusion from its eligibility guidance.
    • Fix
      • State that BLOCKED_WALLET (and screening-flagged requests pending compliance review) must not use the public withdrawal flow; require integrators to inspect failReason and route these requests to the documented compliance/support process regardless of protocol.isWithdrawable.

    T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "Document withdrawal endpoints and guide ..." | Re-trigger Greptile


## Overview

Sometimes a deposit can't be filled: it was flagged by screening, sent in the wrong currency or on the wrong chain, or the order failed after the deposit landed. Those funds sit in the [Depository](/references/protocol/components/depository) until the original depositor reclaims them. [relay.link/withdraw](https://relay.link/withdraw) is a thin frontend over three public API endpoints, and your app can drive the same flow directly.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Compliance-blocked deposits are presented as recoverable

The overview says that a deposit flagged by screening can be reclaimed through these public endpoints, and the eligibility instructions later treat protocol.isWithdrawable as the recovery criterion without excluding BLOCKED_WALLET. This selects a blocked-wallet request for attestation and withdrawal even though the execution-errors reference says those funds are subject to compliance review and are not automatically refunded. Explicitly exclude BLOCKED_WALLET from this flow and direct integrators to the required review or support process regardless of isWithdrawable.

Artifacts

PR source diff showing the new withdrawal guide eligibility language

  • Captured `git diff HEAD^ HEAD` for the two requested documentation paths, showing the guide was introduced with screened deposits and isWithdrawable recovery guidance; the takeaway is that the candidate language is in this PR.

Focused validation script source

  • Captured the numbered Python validation script that reads the two documentation files and exercises the reported eligibility decision; the takeaway is that the execution checks only the requested contradiction.

Executed BLOCKED_WALLET eligibility validation output

  • Captured execution of the focused validation with a BLOCKED_WALLET request and isWithdrawable true, which selected the public flow and reported the compliance-review contradiction; the takeaway is that the defect is confirmed.

View artifacts

T-Rex Ran code and verified through T-Rex

@scout-relayprotocol scout-relayprotocol Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two documentation issues to address:

  • P2 — XRP support is omitted (references/protocol/guides/withdrawals.mdx:29, 120–125, 169). The withdrawal API and worker support XRP user withdrawals and auto-broadcast them like TON, but XRP is absent from both the supported-chain list and signing/broadcast guidance. Either document the XRP signing flow and note solver broadcasting, or explicitly reject XRP in the API.
  • P2 — Not every failed job should be retried (references/protocol/guides/withdrawals.mdx:163). The guide says to restart after any failure, but terminal reasons include blocked_wallet and chain_disabled; repeatedly preparing cannot resolve those. Recommend inspecting reason, retrying only recoverable failures, and directing terminal cases to Support.

Mintlify deployment and link validation pass. The failed Claude check was infrastructure-only: it exhausted its turn limit without producing findings.

@ted-palmer
ted-palmer requested a review from ipeleg August 27, 2026 20:34
@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Code review in progress

  • Read the PR diff
  • Check against AGENTS.md style guide
  • Verify docs.json nav wiring
  • Post review

View job run · branch ted/int2-838-withdrawal-docs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants