ONYX//AML
Open Template · Source of Funds

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.

ONYX//AML · OPEN TEMPLATE
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.

ONYX//AML · OPEN TEMPLATE
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.

ONYX//AML · OPEN TEMPLATE
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.

ONYX//AML · OPEN TEMPLATE
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

  1. Numbers and dates must match your annexes to the digit — packages are cross-checked against the exchange's own transaction data.
  2. Old capital is fine: tax returns and statements from past years are normal evidence as long as the chronology is continuous.
  3. Non-English documents: attach the original plus a plain translation side by side; notarization is rarely required at the first round.
  4. Keep the final PDF under ~20 MB and the annexes in the listed order — one file per annex.

What NOT to do

What Onyx does in your case

  1. Forensic report on your addresses (Chainalysis/TRM class): what exactly triggered the flag and your real distance from the risk cluster.
  2. Source of Funds dossier — a chronological reconstruction of your capital with documents, in the format compliance actually reads.
  3. 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.

CASE INTAKE // FREE ASSESSMENT

Confidential. We run our own AML screening first: cases involving sanctioned or knowingly illicit flows are declined — including any sanctions-evasion scenarios.