Connect onchain balances and movements to your books.

Bring balances and transfer history from GraphOps into your treasury systems. Your integration matches chain records to the books.

Treasury and operations
Period close Incoming USDC
Observed onchain5,550
Matched to books5,150
Period blocks21,400,000 to 21,407,199
Chain receipts
  • 2,5000x11…a2 / event 0
  • 8000x22…b3 / event 1
  • 1,2000x2f…d9 / event 3
  • 4000x33…c4 / event 0
  • 6500x41…e7 / event 2
Book entries
  • BOOK-10422,500
  • BOOK-1043800
  • BOOK-10441,200
  • BOOK-1045650
Unmatched receipt 0x33…c4 / event 0 · Not posted
400 USDC
Worked example

Close the day with one receipt left to explain

Your treasury closes incoming USDC every day. Five receipts reach your collection address, four match book entries, and a 400 USDC receipt has none.

At stake

The day stays open until someone explains the 400 USDC.

Built with
  • GraphOps Substreams
  • GraphOps RPC

Period close

Incoming USDC · blocks 21,400,000 to 21,407,199
Observed onchain
5,550
Matched to books
5,150
Unmatched
400
  1. 2,500 USDC0x11…a2 / event 0 Block 21,400,610 BOOK-1042
  2. 800 USDC0x22…b3 / event 1 Block 21,401,980 BOOK-1043
  3. 1,200 USDC0x2f…d9 / event 3 Block 21,403,310 BOOK-1044
  4. 400 USDC0x33…c4 / event 0 Block 21,404,690 No book entry
  5. 650 USDC0x41…e7 / event 2 Block 21,406,210 BOOK-1045

Exception 0x33…c4 / event 0

400 USDC
Receipt
Successful transfer
Sender
0x7e…19
Your register
Customer C-0381
Open invoice
INV-2207 · 400 USDC

Proposed entryBOOK-1046Posts after your approval

How it comes together

  • GraphOps service
  • Your systems and team
  1. GraphOps Substreams

    Stream the day’s receipts

    Your consumer stores each USDC transfer into your collection address with its block, transaction, and event index, and saves the cursor after each commit.

  2. Your matcher

    Match receipts to the books

    Amount and sender rules pair four receipts with BOOK-1042 to BOOK-1045. The 400 USDC receipt in block 21,404,690 has no entry.

  3. GraphOps RPC

    Check the exception at its source

    The receipt for transaction 0x33…c4 shows a successful 400 USDC transfer from 0x7e…19.

  4. Your finance team

    Decide the posting

    Your register maps 0x7e…19 to customer C-0381, whose invoice INV-2207 is open for 400 USDC. After approval, BOOK-1046 posts with a link to the source event.

ResultThe day closes with 5,550 USDC observed and matched, and every book entry links to its source event.

A source record establishes the movement. Its accounting classification is your finance team’s decision.

If the receipt stays unexplained

Keep it assigned and open with the investigation notes, and carry it into the next close. The source reference stays with it until someone resolves it.

Related workflows

Across the treasury operating cycle

  • Balance visibility

    Read selected account and asset balances at a common block reference.

    GraphOps RPC
  • Transaction follow-up

    Investigate funds in motion using transactions and receipts.

    GraphOps RPC
  • Reconciliation and reporting

    Collect movement history for matching against your books.

    GraphOps Substreams
  • Operational views

    Build activity and position views from indexed entities.

    GraphOps Subgraphs
Evaluate with your data

Test a close that includes exceptions

A matched total is one acceptance condition. Use a sample period with the cases your team spends time resolving.

  1. Test 01

    Internal transfers and fees

    Include a movement between two of your addresses and a transaction with a network fee. Internal movement must not post as income, and fees belong in the right asset.

  2. Test 02

    Repeatable imports

    Import the same period twice and restart partway through. Source identifiers prevent duplicate entries, and the saved cursor follows committed records.

  3. Test 03

    Exceptions with a trail

    Include a missing book entry, an amount mismatch, and a source correction. Each should reach the right review queue and keep its source reference once resolved.

Connect your treasury’s next data workflow.

Create an account and fund access for balance reads or movement history. Discuss your reconciliation integration and ongoing reporting requirements with GraphOps.