Source of Funds template: the narrative skeleton compliance accepts
A ready-to-fill skeleton of a Source of Funds declaration: title summary, capital chronology table, on-chain trail and honest-gaps section. Free and open — no email gate. Copy the blocks, replace the brackets, attach numbered annexes. The format mirrors how exchange compliance teams actually read SoF packages.
When you need this document
The exchange asked for Source of Funds
A KYC/SoF request, an "additional review", a withdrawal held pending proof of origin — this skeleton is the answer format.
You are pre-empting the request
A frozen deposit almost always ends in an SoF request. A package prepared before the letter arrives cuts the cycle by weeks.
Your first submission was chaotic
Forty unnamed screenshots got you nowhere. One structured resubmission that supersedes the mess is the recovery move.
The template
Written in English — the working language of every global compliance team. Replace everything in [brackets]; delete sections that do not apply. Keep the numbering: annexes are cited by number in your answers.
Block 1 — title page and summary. One page maximum. The officer decides in the first minute whether your package is readable; this page is that minute.
SOURCE OF FUNDS DECLARATION Exchange: [platform] — account UID [______] Name: [exactly as in KYC] Date: [YYYY-MM-DD] Case / ticket reference: [#______] 1. PURPOSE This package responds to your request dated [date] regarding the origin of funds deposited to my account. It contains: (A) a capital chronology, (B) supporting documents — annexes 1–[N], (C) an on-chain transaction trail. 2. SUMMARY I am a [profession / business owner / private investor] residing in [country]. The funds under review ([amount] [asset]) originate from [salary / sale of property / business income / long-term crypto holdings acquired in YYYY]. Documentary evidence for every step is annexed and cross-referenced below.
Block 2 — capital chronology. The core of the dossier. One row = one event = one annex. The table replaces pages of prose.
3. CAPITAL CHRONOLOGY | Date | Event / source | Amount | Evidence | |------------|------------------------------------------|----------|-----------| | YYYY-MM-DD | Salary, [employer] | [amount] | Annex 1 | | YYYY-MM-DD | Sale of apartment, [city] | [amount] | Annex 2 | | YYYY-MM-DD | Fiat -> USDT via [platform], TxID [____] | [amount] | Annex 3 | | YYYY-MM-DD | Deposit to [exchange], TxID [____] | [amount] | Annex 4 | Every row is covered by exactly one annex. Gaps are explained in section 5.
Block 3 — on-chain trail. Your fiat history means little if the crypto path is opaque. List the full route to the deposit address, every TxID.
4. ON-CHAIN TRAIL Deposit address: [0x… / T…] Funding path: [origin platform or wallet] -> [self-custody wallet, address] -> [exchange deposit address]. TxIDs: [list every transfer in the path, oldest first] An independent AML screening report covering the addresses above is attached as Annex [N].
Block 4 — gaps, declaration, annex list. An honestly flagged gap with a workaround reads as good faith. An invented document, when caught, ends the case permanently.
5. NOTES AND GAPS [Flag missing documents honestly. Example: "Payroll records for 2019 are no longer available from the employer; bank statements for the same period (Annex 6) show the matching monthly inflows."] 6. DECLARATION I confirm the information above is complete and accurate to the best of my knowledge. I am available for follow-up questions or a verification call. [Name as in KYC], [date] ANNEX LIST Annex 1 — [payroll statements, YYYY–YYYY] Annex 2 — [property sale contract, date] Annex 3 — [exchange purchase receipt + TxID] Annex 4 — [bank statements, period]
Filling rules
- Numbers and dates must match your annexes to the digit — packages are cross-checked against the exchange's own transaction data.
- Old capital is fine: tax returns and statements from past years are normal evidence as long as the chronology is continuous.
- Non-English documents: attach the original plus a plain translation side by side; notarization is rarely required at the first round.
- Keep the final PDF under ~20 MB and the annexes in the listed order — one file per annex.
What NOT to do
- Do not edit or "enhance" any document — a single detected alteration kills the entire dossier and every linked account.
- Do not change your story between submissions: compliance compares every version you have ever sent, including old support tickets.
- Do not pad the package with irrelevant paper — volume is not credibility; traceability is.
What Onyx does in your case
- Forensic report on your addresses (Chainalysis/TRM class): what exactly triggered the flag and your real distance from the risk cluster.
- Source of Funds dossier — a chronological reconstruction of your capital with documents, in the format compliance actually reads.
- Communication with the platform's compliance or your bank — one verified position instead of ticket chaos.
Frequently asked questions
Is this template enough to unlock my funds?
It is the format, not the verdict: the decision is always the exchange's. A clean structure removes the most common failure cause — unreadable submissions — but the facts and documents are yours.
Should I write it myself or hire someone?
A routine KYC top-up — do it yourself with this skeleton. An AML flag, a six-figure amount or a P2P complaint — the first submission fixes your version of events permanently; a forensic review before sending is cheap insurance.
The exchange gave me a form of its own. Use it or this?
Always answer in the exchange's own form when one exists, and use this skeleton for the narrative attachment and the annex discipline.
Related resources
Free preliminary case assessment
Describe your situation — we will return an honest assessment: what is realistically possible, how long it takes and what it costs. No "guaranteed unlocks" — they do not exist; compliance decides.