Skip to main content

CFTC digital collateral reporting data

What is CFTC digital collateral reporting data?

CFTC digital collateral reporting data is the weekly total of digital assets a futures commission merchant (FCM) holds as customer margin, such as BTC, ETH and USDC, broken down by asset and by account class.

Under the CFTC’s digital collateral pilot, an FCM reports those totals each week for its first three months under the relief, so its regulatory reporting team needs a balance history for every segregated wallet that ties back to the chain.

Goldsky reads each listed wallet’s ETH and USDC balance whenever it moves and lands the history in your warehouse; your team adds BTC from your custodian’s statements, totals it all at week end and files the report.

You can gather CFTC digital collateral data two ways: stream each margin wallet’s balance history into your warehouse with Turbo Pipelines, or read balances at the reporting date with the Feeds Blocks API and Edge RPC.

Who needs CFTC digital collateral reporting data?

Futures commission merchants and prime brokers that accept digital assets as customer margin.

How CFTC digital collateral reporting works

The diagram follows customer margin from the moment it’s posted to the weekly report your team files, and shows who does each step. Your setup may differ.

Your business, step 1: Customer posts marginCollateral in BTC, ETH or USDC
Your business, step 2: CustodianHold it in custodySegregated wallets per account class
Your business, step 3: List the margin walletsEach tagged with its account class
Blockchains, step 4: Collateral movesDeposits, withdrawals and transfers
Goldsky, step 5: TurboTrack margin balancesETH and USDC, read when a wallet moves
Your business: CustodianReport BTC holdingsYour custodian’s statement for each wallet
Goldsky, step 6: TurboLand it in your warehouseBalance history per wallet
Your business, step 7: Total at week endPer asset and account class
Your business, step 8: File the weekly reportYour team submits it to the CFTC
  • Goldsky
  • Your provider

Ways to gather CFTC digital collateral reporting data

Streaming keeps a balance for every movement of each margin wallet, so questions about midweek have answers; reading at the reporting date runs only when you report and needs no pipeline.

Best for
Many margin wallets, with a balance history for each
Products
Turbo
What you run
The destination: your database, queue or bucket, or a Postgres database Goldsky hosts
What you write
Pipeline YAML and SQL; TypeScript transforms when needed
Where your data lives
In your own database or systems
How results reach you
Pushed to you
Best for
A known list of wallets, read at each reporting date
Products
FeedsEdge
What you run
Your own client code
What you write
JSON-RPC calls, and the decoding of what comes back
Where your data lives
Read from the chain
How results reach you
Returned when you call

Option 1: Gather CFTC digital collateral data by streaming balances to your warehouse

A pipeline watches your list of margin wallets, reads a wallet’s balance at the block each time it moves, and lands the history in your warehouse, where your team totals it by asset and account class at week end.

When to stream margin wallet balances

Your margin wallets change often, and you want a balance history for each one that answers questions between reporting dates as well as the weekly figure.

What you’ll need

  • Goldsky Turbo
  • A custody provider holding segregated margin wallets
  • Your list of margin wallets, each tagged with its account class
  • A Postgres database for the wallet list
  • A warehouse, or an object store it reads from
  • A source for BTC balances, such as your custodian’s statements
  1. Take the customer’s margin

    Customers post digital assets as margin for their futures positions, and you hold them on the customer’s behalf.

    Each deposit is booked against the customer and the account class it belongs to. Margin booked to the wrong class ends up in the wrong line of the report.

  2. Hold it in segregated custody

    Customer margin has to be kept apart from the firm’s own assets, usually in wallets set aside for each account class.

    Your custodian holds the assets in separate wallets for each class under your instructions. A wallet that mixes classes can’t be reported by class without extra records.

  3. List the margin wallets

    You only report what you watch, so every margin wallet needs to be on one list with its class.

    Keep each wallet’s address, chain, asset and account class together, and add new wallets the day they’re opened. A wallet missing from the list drops out of the totals.

  4. Let collateral move

    Deposits, withdrawals and transfers change what each wallet holds through the week.

    Each movement is recorded in a block. For a short time the newest blocks can still be replaced, so a balance read right away can change.

  5. Track each wallet’s balance

    Handled by Goldsky Turbo

    The report needs what each wallet held at a point in time, and reading the balance whenever it changes gives you that history.

    Each time a listed wallet sends or receives, its balance is read at that block and stored. A balance read later can include movements that came after.

    With Goldsky, the wallet list lives in a Turbo Pipelines dynamic table, and the pipeline reads balances at each movement’s block with _gs_evm_get_balances for ETH, or _gs_eth_call with balanceOf for tokens such as USDC.

    Track balances for a set of addresses (opens in a new tab)
  6. Land the history in your warehouse

    Handled by Goldsky Turbo

    Totals are worked out from a dated balance history your team controls.

    Each balance row carries the wallet, chain, asset, block and time. Corrections after a reorg arrive as rows of their own, and the warehouse applies them.

    The pipeline can write balance rows as Parquet files to an S3-compatible bucket for your warehouse, partitioned by date.

    Write rows to S3 as Parquet (opens in a new tab)
  7. Total at week end

    The report gives one total per asset and account class as of the reporting date.

    Your team takes each wallet’s latest balance at or before the cutoff and sums them by asset and account class, then adds BTC from its own source. A wallet that didn’t move that week still counts, at its last known balance.

  8. File the weekly report

    The figures are your firm’s report to the CFTC, so the people who answer for it check them first.

    Your regulatory reporting team checks the totals against custodian statements and your books, then submits them. Onchain data supports the figures; it doesn’t make the report complete or correct on its own.

What to know about streaming margin wallet balances

  • Balances are read on EVM chains, which covers ETH and USDC; plan another source for BTC.
  • Weekly totals by asset and account class are queries in your warehouse.
  • A wallet you add to the list is watched by the running pipeline without a redeploy.
  • Reorg corrections arrive as records your warehouse applies.

Option 2: Gather CFTC digital collateral data by reading balances at the reporting date

At each reporting date, your job looks up the block at the cutoff, reads each margin wallet’s balance at that block, and totals the results by asset and account class. Nothing runs between reporting dates.

When to read margin balances at the reporting date

You have a known list of margin wallets on EVM chains and need balances only at each reporting date, not a history in between.

What you’ll need

  • Goldsky Feeds
  • Goldsky Edge
  • A custody provider holding segregated margin wallets
  • Your list of margin wallets, each tagged with its account class
  • A scheduled job of yours that runs the reads
  • A warehouse or database for the results
  • A source for BTC balances, such as your custodian’s statements
  1. Take the customer’s margin

    Customers post digital assets as margin for their futures positions, and you hold them on the customer’s behalf.

    Each deposit is booked against the customer and the account class it belongs to. Margin booked to the wrong class ends up in the wrong line of the report.

  2. Hold it in segregated custody

    Customer margin has to be kept apart from the firm’s own assets, usually in wallets set aside for each account class.

    Your custodian holds the assets in separate wallets for each class under your instructions. A wallet that mixes classes can’t be reported by class without extra records.

  3. List the margin wallets

    You only report what you watch, so every margin wallet needs to be on one list with its class.

    Keep each wallet’s address, chain, asset and account class together, and add new wallets the day they’re opened. A wallet missing from the list drops out of the totals.

  4. Let collateral move

    Deposits, withdrawals and transfers change what each wallet holds through the week.

    Each movement is recorded in a block. For a short time the newest blocks can still be replaced, so a balance read right away can change.

  5. Find the block at the cutoff

    Handled by Goldsky Feeds

    Chains count in blocks, not dates, so the reporting time has to become a block number on each chain.

    Use the last block at or before the cutoff on each chain. A block after the cutoff includes movements that belong to next week.

    The Goldsky Blocks feed returns the newest block at or before a given time on each chain when you sort by number_desc and request one row.

    Look up a block by time (opens in a new tab)
  6. Read each wallet’s balance at that block

    Handled by Goldsky Edge

    The balance at the cutoff block is what the wallet held at the reporting time.

    ETH and token balances such as USDC are read at the same block for every wallet. Reading at the chain’s newest block instead mixes in later movements.

    Edge RPC runs eth_call against any past block, so your job can call balanceOf for each wallet at the cutoff, and eth_getBalance reads ETH at the same block.

    Read contract state at a block (opens in a new tab)
  7. Total by asset and account class

    The report gives one total per asset and account class.

    Your job sums the balances by asset and class, adds BTC from its own source, and stores the result with the block numbers it used. Keeping the blocks lets anyone rerun the reads and get the same figures.

  8. File the weekly report

    The figures are your firm’s report to the CFTC, so the people who answer for it check them first.

    Your regulatory reporting team checks the totals against custodian statements and your books, then submits them. Onchain data supports the figures; it doesn’t make the report complete or correct on its own.

What to know about reading balances at the reporting date

  • Your job makes the calls and the totals; Goldsky serves the block lookup and the balance reads.
  • This covers ETH and USDC on EVM chains; BTC margin needs another source.
  • You get balances at the date only, so a question about midweek movements needs another read.
  • Reading at a block that’s already final means no reorg corrections to apply.

What you control

Your team
  • Take the customer’s margin
  • List the margin wallets
  • Total at week end
  • File the weekly report
Your providers
  • Custodian

Security and deployment

  • SOC 2 Type IIIndependently audited security controls.
  • Dedicated infrastructureSingle-tenant options for production workloads.
  • Data residencyCloud, on-premises or co-located.

Gather CFTC digital collateral reporting data with Goldsky

We’ll map it to your systems and show you what Goldsky runs, so your team builds the product, not the pipelines underneath it.

© Endless Sky Inc. All rights reserved.

PrivacyTermsSecurity

System status