Skip to content

Commit 5ad06ef

Browse files
authored
docs(reference): add third-party audit summary page (Closes #86) (#119)
Summarizes the Stellar Asset Contract (SAC) compatibility review for non-technical readers, with severity, findings, and remediation status per finding, and a link to the raw report in contracts/stellar/audits. Also fixes a pre-existing invalid-JSON syntax error in the docs.json Reference nav group (duplicate/malformed pages key from a bad merge in 5c5c7f1 / 23d0a1f) and adds the new audits page's nav entry.
1 parent 62d05de commit 5ad06ef

2 files changed

Lines changed: 54 additions & 6 deletions

File tree

docs.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,7 @@
9494
},
9595
{
9696
"group": "Reference",
97-
"pages": [
98-
"reference/stellar-networks",
99-
"reference/stellar-event-schemas",
100-
"reference/threat-model",
101-
"reference/security-disclosure"
102-
]
97+
"pages": ["reference/security-disclosure", "reference/threat-model", "reference/audits"]
10398
}
10499
]
105100
},

reference/audits.mdx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: "Audits"
3+
description: "Curated summaries of Wraith Protocol contract audits, with links to the full raw reports"
4+
---
5+
6+
This page summarizes every audit and formal security review of Wraith Protocol's on-chain contracts, in plain language, for readers who don't need to read a full technical report line by line. Each entry links to the raw report for anyone who wants the complete findings.
7+
8+
<Note>
9+
Wraith Protocol currently has one completed review, conducted internally by
10+
the Wraith Protocol security team rather than an external audit firm.
11+
Additional third-party audits from independent security firms are planned —
12+
see the [roadmap](/roadmap) and the [Threat Model's Audit History](/reference/threat-model#audit-history)
13+
for status. This page will be updated as new audits complete.
14+
</Note>
15+
16+
## Stellar Asset Contract (SAC) Compatibility Review — June 2026
17+
18+
| | |
19+
|---|---|
20+
| **Firm** | Wraith Protocol internal security review (not a third-party firm) |
21+
| **Date** | June 2026 |
22+
| **Scope** | `stealth-sender` v1.2, `stealth-announcer` v1.1 (Stellar Protocol 22, mainnet and testnet) |
23+
| **Raw report** | [SAC Compatibility Audit](/contracts/stellar/audits/2026-06-sac-compatibility) |
24+
25+
### What was reviewed
26+
27+
This was a compatibility review, not a general code audit. It tested how Wraith's Stellar contracts behave against every Stellar Asset Contract (SAC) flag combination an issuer could set — things like requiring pre-authorization or allowing an issuer to claw back funds — to work out which assets are safe to use with stealth payments and which are not.
28+
29+
### Findings summary
30+
31+
Seven findings, none of them bugs in Wraith's own code — all seven describe how Wraith's contracts interact with asset issuer configuration that Wraith does not control.
32+
33+
| ID | Severity | Finding |
34+
|---|---|---|
35+
| F-01 | Informational | USDC and EURC (Circle) carry no restrictive flags and work with `stealth-sender` with no special handling. |
36+
| F-02 | Informational | Stellar Protocol 22's `trust()` lets `stealth-sender` create a trustline for the recipient in the same transaction, but the sender needs to budget ~0.5 XLM per new trustline for the reserve. |
37+
| F-03 | **High** | Assets with the `AUTH_REQUIRED` flag block transfers to stealth addresses: the issuer must authorize each address, but stealth addresses are freshly generated per payment, so there's no address to pre-authorize without breaking the privacy model. USDC and EURC are not affected. |
38+
| F-04 | **High** | Assets with `AUTH_CLAWBACK_ENABLED` allow the issuer to reclaim funds from a stealth address without the holder's consent. USDC and EURC are not affected. |
39+
| F-05 | Medium | Assets with `AUTH_REVOCABLE` (but not clawback) let the issuer freeze — not seize — a stealth address's trustline, which can trap funds until the issuer re-authorizes it. |
40+
| F-06 | Informational | Sending to an issuer's own account burns tokens; sending from it mints tokens. Documented for completeness — not a practical risk. |
41+
| F-07 | Low | Trustline balances are 64-bit integers, capping the largest possible single payment for assets with very few decimal places. Not a real-world constraint for USDC. |
42+
43+
### Remediation status
44+
45+
No contract code changes were required — every finding is a property of how a given asset issuer configures their token, not a defect in Wraith's contracts. Remediation took the form of user-facing guardrails instead:
46+
47+
- **F-03 (`AUTH_REQUIRED`) and F-04 (`AUTH_CLAWBACK_ENABLED`) — resolved via warnings.** The Wraith SDK and agent detect both flags before a payment is sent and surface a warning automatically. The audit's recommendation was to avoid `AUTH_REQUIRED` assets entirely and to warn users about clawback exposure; both are implemented.
48+
- **F-05 (`AUTH_REVOCABLE`) — open, monitoring recommended.** Treated as an elevated-risk case; the audit recommends monitoring trustline authorization status for wallets handling these assets. No automated mitigation beyond the general warning surfaced for non-standard flags.
49+
- **F-01, F-02, F-06, F-07 — informational, no action required.** USDC and EURC, the primary assets used in production, are unaffected by any of these findings.
50+
51+
<Info>
52+
See the [Threat Model](/reference/threat-model#stellar-contracts) for how these findings map into Wraith's broader STRIDE threat analysis (risk R-05 / S-15), and the [Privacy Best Practices guide](/guides/privacy-best-practices) for user-facing guidance on asset selection.
53+
</Info>

0 commit comments

Comments
 (0)