Rule 15c3-3(b)(1) · Crypto asset securities

The evidence engine
that refuses.

On 17 December 2025 the SEC's Division of Trading and Markets set out five conditions for a broker-dealer to treat itself as having physical possession of a crypto asset security. Six days later the 2020 Special Purpose Broker-Dealer statement expired. This is the layer that evidences those five conditions — continuously, and to an examiner.

REAL — runs & tested SCAFFOLD — interface only PLANNED — not built BLOCKED — external
The premise

The refusal is the product

Most compliance software is built to produce an output. This is built to withhold one.

Why that distinction matters

An evidence engine that always says yes manufactures a paper trail asserting a determination nobody actually made. That is not a neutral failure — it is worse than having no system at all, because it creates a record an examiner will read as a considered judgement.

So the interesting behaviour here is the negative path: what the system does when the evidence is not there. Three of the six stages in the demo end in a refusal.

48
tests passing
5
conditions encoded
3
demo stages that refuse
0
unlabelled claims
Status at a glance

What is real, and what is not

Every component carries one of four labels. Nothing is described as finished when it is not — and the gaps below are stated as plainly as the wins.

Receipt chainREAL
7 tests — mutation, deletion, reordering and truncation all detected
Five-condition gateREAL
15 tests covering every refusal path
Proof of control · XRPLREAL
Signs a challenge, verifies against the asserted address, never builds a transaction
Written artifactsREAL
Policy, contingencies and risk assessment generated and hash-committed
ERC-3643 compliance moduleREAL
17 tests against Tokeny's shipped ModularCompliance, not a mock
XRPL MPT + CredentialsREAL
Offline conformance and canonical codec round-trip
Proof of control · EVMSCAFFOLD
Code written, not covered by a test
Third-party custodian APISCAFFOLD
Adapter refuses under every configuration, deliberately
Automatic concern detectionPLANNED
Material concerns are raised by a human today
External anchoringPLANNED
The most important gap on this page — see below
EVM token layerPLANNED
Only the compliance module that would govern it
The engine

Five conditions, encoded as executable checks

#Condition — TM statement, 17 Dec 2025How it is checked
1Full access and ability to transfer on the DLTCryptographic proof of control, re-proven every 24 hours
2Written policies protecting private key accessApproved policy on record, hash-committed
3Documented DLT security & operational integrity assessmentCurrent assessment affirming both prongs
4Contingency procedures — fork, 51%, airdrop, seizure, trusteeAll five named events addressed; gaps named individually
5No known material security or operational problemsKill switch. Any open concern voids the assertion

Why condition 5 behaves differently

Conditions 1–4 are prerequisites — they need an affirmative record. Condition 5 is a veto: it asks whether a problem is open, so on an empty chain it passes. That asymmetry is deliberate and pinned by a test, because the failure mode it prevents is ugly — a firm with no evidence at all appearing to be one step from compliant.

Proof of control, without moving assets

The proof signs a random challenge, never a serialised transaction. It carries no TransactionType, no Account, no Fee, no Sequence. A leaked proof cannot move anything — and a test asserts the signature fails to decode as a transaction.

The limitation, stated before anyone has to ask

Hash-linking makes tampering detectable, not impossible. A firm that controls the entire file can rebuild the chain end to end and it will verify clean.

Closing that gap requires anchoring the head hash somewhere the firm cannot rewrite — a third-party WORM store or a public ledger. That is not implemented. Until it is, this is a strong internal control, not an independent record, and it must not be described to an examiner as the latter.

Control flow

Exactly when possession may be asserted

The gate's real logic. Four of the seven terminal paths are not an assertion.

broken

intact

yes

no

no

yes

no

yes

no

yes

no

yes

yes — kill switch

none open

assertPossession()

Receipt chain
verifies?

Custody held by
a third party?

1 · Control proof
verified, fresh
and quorum-held?

2 · Key protection
policy on record?

3 · Risk assessment
current and affirmative?

4 · All five
contingencies covered?

5 · Any material
concern open?

POSSESSION ASSERTED
Rule 15c3-3(b)(1)
evidence head pinned

REFUSED
refusal itself recorded

THROWS
records unreliable —
refuse to reason at all

WRONG TEST
assert control under
Rule 15c3-3(c)

Three decisions worth arguing with

Instrument spine

One definition, two rails

EVM carries transfer logic needing arbitrary computation. XRPL carries settlement and membership — putting the eligibility check in the ledger itself rather than an application server.

XRPL · MPT

Credentials

PermissionedDomain

native USDC cash leg

seasoning clock on-ledger

EVM · ERC-3643 / T-REX

per-lot Rule 144 seasoning

Section 12(g) holder cap

conditional transfer approval

UNY-DEMO-001.json
single source of truth

The asymmetry is documented, not smoothed over

XRPL cannot enforce the seasoning clock on-ledger, because Hooks never activated on XRPL mainnet. That red node is the one place the two rails do not enforce the same thing — and it is in the build ledger as a named gap rather than left for a buyer to discover during diligence.

Verification

Reproduce every claim on this page

No screenshots. Every green label above corresponds to a command you can run in about four minutes.

$ git clone https://github.com/FTHTrading/BD-New.git
$ cd BD-New && npm install

$ npx hardhat test                                 # 17 passing — ERC-3643
$ node --test possession/test/possession.test.js   # 31 passing — possession
$ node xrpl/validate.js                            # offline conformance
$ node possession/demo.js                          # end-to-end

What the demo actually prints

Stage 1  no evidence on record      REFUSED
Stage 2  third-party custodian      routed to 15c3-3(c), not (b)(1)
Stage 3  incomplete procedures      REFUSED — names the 3 missing contingencies
Stage 4  procedures completed       ASSERTED
Stage 5  reorg observed             REFUSED ← condition 5 kill switch
Stage 6  concern investigated       ASSERTED

Independent re-verification from disk
  PASS  chain re-verifies from the written file
  PASS  tampering detected at receipt 3 (content does not match its hash)
Before any procurement conversation

What this is not

Regulatory basis

SourceWhat it doesIts limit
17 CFR 240.15c3-3(b)(1)Physical possession requirementThe rule itself
17 CFR 240.15c3-3(c)Good control locationsDifferent test — third-party custody
TM staff statement, 17 Dec 2025Five conditions for crypto asset securitiesStaff view. Not a rule. No safe harbour
2020 SPBD statementPrior frameworkExpired 23 Dec 2025
17 CFR 240.17a-4Recordkeeping — WORM or audit-trail alternativeAnchoring gap applies