The plain spelling the wall always caught
8 refusedsar→ sarstr→ strsar_filed→ sar_filedfiling_decision→ filing_decisionsuspicious_activity→ suspicious_activityfincen→ fincengoaml_ref→ goaml_reftipping_off→ tipping_off
The tipping-off wall · 81 disguises · 14 honest keys
Telling anyone that a suspicious-activity report was filed is a tipping-off offence in most jurisdictions, so Mirror is built to be unable to hold that decision, however it is spelled - Cyrillic look-alikes, fullwidth letters, zero-width joiners, camelCase. This is the published corpus the door is tested against, and the 14 honest field names it must never refuse.
12 disguises
Width, font and look-alike letters are folded by Unicode normalisation and a confusables table; invisible characters are stripped before anything else; camelCase, hyphens, dots and spaces all become one separator. Under each disguise, the characters that are not what they look like.
sar→ sarstr→ strsar_filed→ sar_filedfiling_decision→ filing_decisionsuspicious_activity→ suspicious_activityfincen→ fincengoaml_ref→ goaml_reftipping_off→ tipping_offSAR→ sarSTR→ strSAR_FILED→ sar_filedFILING_DECISION→ filing_decisionSUSPICIOUS_ACTIVITY→ suspicious_activityFINCEN→ fincenGOAML_REF→ goaml_refTIPPING_OFF→ tipping_offѕаr→ sar2 Cyrillic look-alikesѕtr→ str1 Cyrillic look-alikeѕаr_fіlеd→ sar_filed4 Cyrillic look-alikesfіlіng_dесіѕіоn→ filing_decision8 Cyrillic look-alikesѕuѕрісіоuѕ_асtіvіtу→ suspicious_activity13 Cyrillic look-alikesfіnсеn→ fincen3 Cyrillic look-alikesgоаml_rеf→ goaml_ref3 Cyrillic look-alikestірріng_оff→ tipping_off5 Cyrillic look-alikessαr→ sar1 Greek look-alikesτr→ str1 Greek look-alikesαr_fιlεd→ sar_filed3 Greek look-alikesfιlιng_dεcιsιοn→ filing_decision6 Greek look-alikessusριcιοus_αcτιvιτy→ suspicious_activity9 Greek look-alikesfιncεn→ fincen2 Greek look-alikesgοαml_rεf→ goaml_ref3 Greek look-alikesτιρριng_οff→ tipping_off6 Greek look-alikessar→ sar3 fullwidth charactersstr→ str3 fullwidth characterssar_filed→ sar_filed9 fullwidth charactersfiling_decision→ filing_decision15 fullwidth characterssuspicious_activity→ suspicious_activity19 fullwidth charactersfincen→ fincen6 fullwidth charactersgoaml_ref→ goaml_ref9 fullwidth characterstipping_off→ tipping_off11 fullwidth characters𝐬𝐚𝐫→ sar3 math-alphabet characters𝐬𝐭𝐫→ str3 math-alphabet characters𝐬𝐚𝐫_𝐟𝐢𝐥𝐞𝐝→ sar_filed8 math-alphabet characters𝐟𝐢𝐥𝐢𝐧𝐠_𝐝𝐞𝐜𝐢𝐬𝐢𝐨𝐧→ filing_decision14 math-alphabet characters𝐬𝐮𝐬𝐩𝐢𝐜𝐢𝐨𝐮𝐬_𝐚𝐜𝐭𝐢𝐯𝐢𝐭𝐲→ suspicious_activity18 math-alphabet characters𝐟𝐢𝐧𝐜𝐞𝐧→ fincen6 math-alphabet characters𝐠𝐨𝐚𝐦𝐥_𝐫𝐞𝐟→ goaml_ref8 math-alphabet characters𝐭𝐢𝐩𝐩𝐢𝐧𝐠_𝐨𝐟𝐟→ tipping_off10 math-alphabet characterssar→ sar2 invisible charactersstr→ str2 invisible characterssar_filed→ sar_filed6 invisible charactersfiling_decision→ filing_decision12 invisible characterssuspicious_activity→ suspicious_activity16 invisible charactersfincen→ fincen5 invisible charactersgoaml_ref→ goaml_ref6 invisible characterstipping_off→ tipping_off8 invisible characterssarFiled→ sar_filedfilingDecision→ filing_decisionsuspiciousActivity→ suspicious_activitygoamlRef→ goaml_reftippingOff→ tipping_offSarFiled→ sar_filedFilingDecision→ filing_decisionSuspiciousActivity→ suspicious_activityGoamlRef→ goaml_refTippingOff→ tipping_offsar-filed→ sar_filedfiling-decision→ filing_decisionsuspicious-activity→ suspicious_activitygoaml-ref→ goaml_reftipping-off→ tipping_offsar.filed→ sar_filedfiling.decision→ filing_decisionsuspicious.activity→ suspicious_activitygoaml.ref→ goaml_reftipping.off→ tipping_offsar filed→ sar_filedfiling decision→ filing_decisionsuspicious activity→ suspicious_activitygoaml ref→ goaml_reftipping off→ tipping_offWhat the disguises hide
The corpus disguises these 8; the wall itself refuses every term in its vocabulary, nested at any depth in any request.
sarSuspicious Activity Report (US)
strSuspicious Transaction Report (EU/UK/FATF)
sar_filedthe act of filing a SAR
filing_decisionthe decision itself, the core of the offence
suspicious_activitythe finding a report rests on
fincenthe US receiving body
goaml_refa reference into the UNODC goAML system
tipping_offnaming the offence directly
What must pass
So it is a parser, not a substring scan: instructions contains str and registrar contains sar, and both sail through. These 14 are tested on every build.
shipment_refthe one identifier the operator legitimately needscommitmentsthe salted digests themselvescorridor_commitmentthe corridor bindinginstructionscontains the substring 'str' — must not be read as a Suspicious Transaction Reportconstructorcontains 'str'; also a prototype-pollution shibboleth, still an honest wordregistrarcontains 'str' and 'sar'-adjacent letterssartorial_notesstarts with 'sar' but is not 'sar'star_ratingan anagram-adjacent honest keyactivity_logcontains 'activity' but not 'suspicious_activity'financingstarts like 'fincen' but is not itfiling_cabinetcontains 'filing' but is not a filing_decisionrolethe leg's roletolerancethe corridor tolerancekidthe signing key idRendered at build time from /sar-smuggles.json · sha256 c02daa1ea88f02bd… · written by conformance/build-sar-corpus.js; conformance/sar-wall.test.js sends every entry through the real operator code path