Tokenized loan participation payments
What are tokenized loan participation payments?
Tokenized loan participation payments are the interest and principal a lead bank passes on to the banks that bought shares of a loan, known as loan participations, paid in tokenized deposits instead of by wire.
Banks that sell or buy participations need every participant’s share of each borrower payment paid and recorded against the right loan, because the participation agreement and each bank’s loan records depend on it.
Goldsky writes each payment from the chain to your database, decoded and corrected after reorgs, while your deposit token platform makes the payments and your loan systems match them to loan shares.
You can build it two ways: stream each participation payment into your own database with Turbo Pipelines, or index payments in a subgraph that sends a webhook for each one.
Who makes tokenized loan participation payments?
Community and regional banks that sell or buy loan participations, and crypto-native banks that settle them in tokenized deposits.
How a tokenized loan participation payment is paid and matched
The diagram follows one borrower payment, from the lead bank receiving it to the payment cycle closed by loan operations, and shows who does each step. Your setup may differ.
Ways to track tokenized loan participation payments
Payments from the pipeline become rows beside your loan records, corrected in place after a reorg; the subgraph serves payments over GraphQL and pushes each change to an endpoint you run, which applies it.
- Best for
- Payments as rows beside your loan records
- 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 hosted payment API, with a push per payment
- Products
- Subgraphs
- What you run
- Nothing; Goldsky runs indexing, storage and the API
- What you write
- A schema and mapping handlers, or a no-code or low-code config for simple contracts
- Where your data lives
- Hosted by Goldsky
- How results reach you
- You query; changes are pushed
| Usual setupOption 1: Stream to your database | Option 2: Subgraph with webhooks | |
|---|---|---|
| Best for | Payments as rows beside your loan records | A hosted payment API, with a push per payment |
| Products | Turbo | Subgraphs |
| What you run | The destination: your database, queue or bucket, or a Postgres database Goldsky hosts | Nothing; Goldsky runs indexing, storage and the API |
| What you write | Pipeline YAML and SQL; TypeScript transforms when needed | A schema and mapping handlers, or a no-code or low-code config for simple contracts |
| Where your data lives | In your own database or systems | Hosted by Goldsky |
| How results reach you | Pushed to you | You query; changes are pushed |
Receive the borrower’s payment
A participation payment starts when the borrower pays the lead bank, which then owes each participant its share.
Loan servicing records the payment, splits it into interest, principal and fees by the loan’s terms, and works out each participant’s share from its percentage. A share worked out on the wrong balance carries into every payment after it.
Pay each participant
Each participant bank receives its share as tokenized deposits, which move between banks on a chain.
Your deposit token platform sends one payment per participant from the lead bank’s wallet. A standard token transfer records only the sender, the recipient and the amount, with no loan reference, so matching relies on wallet, amount and date unless your deposit token adds a memo field.
Land each payment in your database
Handled by Goldsky TurboLoan operations needs every payment that left the lead bank’s wallets as a record it can check, without anyone reading a block explorer.
Each transfer from a paying wallet has to be decoded into sender, recipient, amount, transaction and any reference field, and written once. A payment missed here looks like an unpaid participant.
With Goldsky, a Turbo Pipelines pipeline can decode the deposit token’s events, keep transfers from the lead bank’s wallets and write each one to a table keyed on its
Upsert rows into Postgres (opens in a new tab)id.Correct payments undone by a reorg
Handled by Goldsky TurboSometimes the chain replaces its newest blocks (a reorg), and a payment you recorded can disappear or move.
Your payment table has to follow the chain when that happens. If it doesn’t, loan operations books a payment the participant never received.
Turbo Pipelines passes reorg corrections through as updates and deletes, and a database sink with a
How reorgs reach your database (opens in a new tab)primary_keyapplies them to the same rows.Match each payment to the participation
A payment only counts once you know which loan and which participant’s share it settles.
Join each payment to your participation records on the loan reference, or on wallet, amount and date if there is none, and flag anything that doesn’t match. Two payments of the same amount to one participant on one day are both real, so the match can’t rely on amount alone.
Close the payment cycle
Loan operations has to confirm every participant was paid what it was owed for this borrower payment.
Check that the payments add up to the amount due to participants and that each one is matched. An unmatched or short payment goes back to the lead bank to fix before the next borrower payment arrives.
What to know about streaming participation payments
- Goldsky runs the pipeline; you own the database and the matching rules.
- The pipeline’s SQL sets the columns, including any loan reference the payment carries.
- Rows keyed on the payment’s ID are corrected in place after a reorg, and a repeated delivery overwrites the same row.
Receive the borrower’s payment
A participation payment starts when the borrower pays the lead bank, which then owes each participant its share.
Loan servicing records the payment, splits it into interest, principal and fees by the loan’s terms, and works out each participant’s share from its percentage. A share worked out on the wrong balance carries into every payment after it.
Pay each participant
Each participant bank receives its share as tokenized deposits, which move between banks on a chain.
Your deposit token platform sends one payment per participant from the lead bank’s wallet. A standard token transfer records only the sender, the recipient and the amount, with no loan reference, so matching relies on wallet, amount and date unless your deposit token adds a memo field.
Index each payment
Handled by Goldsky SubgraphsLoan operations needs every payment from the lead bank’s wallets as a record it can look up by loan, participant or date.
Each transfer from a paying wallet has to become one payment record with its amount, recipient, transaction and any reference field. A record your mappings skip never reaches loan operations.
Subgraphs runs your mappings over the deposit token’s events and serves the payment records at a GraphQL endpoint, which can require an API token.
Set up public and private endpoints (opens in a new tab)Push each payment to your loan system
Handled by Goldsky SubgraphsYour loan system should hear about a payment when it lands, without polling the API.
Each new payment, and each correction after a reorg, has to reach your endpoint with enough detail to tell one from the other. Changes can arrive out of order, so your endpoint can’t rely on arrival order.
With Goldsky, a webhook on the payment entity sends an
Set up subgraph webhooks (opens in a new tab)INSERTfor each new payment, and theblock_rangeon each version tells a reorg rollback apart from an ordinary update.Match each payment to the participation
A payment only counts once you know which loan and which participant’s share it settles.
Join each payment to your participation records on the loan reference, or on wallet, amount and date if there is none, and flag anything that doesn’t match. Two payments of the same amount to one participant on one day are both real, so the match can’t rely on amount alone.
Close the payment cycle
Loan operations has to confirm every participant was paid what it was owed for this borrower payment.
Check that the payments add up to the amount due to participants and that each one is matched. An unmatched or short payment goes back to the lead bank to fix before the next borrower payment arrives.
What to know about indexing participation payments in a subgraph
- Goldsky hosts the subgraph and its GraphQL endpoint; you write the schema and mappings.
- Webhooks for one change can arrive in any order, so your endpoint keeps its own last-updated time per payment.
- A reorg arrives as a change to a record’s block range, and your endpoint applies it.
- A subgraph indexes one chain, so payments on several chains need one subgraph each.
What you control
- Your team
- Receive the borrower’s payment
- Match each payment to the participation
- Close the payment cycle
- Your providers
- Deposit token platform
Questions and answers
What is a loan participation?
A loan participation is a share of a loan that the lead bank, which made the loan and keeps servicing it, sells to other banks. The borrower keeps dealing only with the lead bank, which collects each payment and passes on every participant’s share by its percentage. Banks use participations to stay within lending limits or spread risk. When the payments move in tokenized deposits, each one is a transfer on a chain that the lead bank and participants can match to the loan.
Security and deployment
- SOC 2 Type IIIndependently audited security controls.
- Dedicated infrastructureSingle-tenant options for production workloads.
- Data residencyCloud, on-premises or co-located.
More use cases that run corporate actions
- Tokenized money market fund dividends paid as new tokensSnapshot holders and mint each one’s yield as new fund tokens.
- Dividends and splits on tokenized stocksApply dividends and splits to tokenized-stock holders as of the record date.
- Tokenized bond coupon paymentsPay bond coupons to holders at the record date.
- Proxy voting for tokenized securitiesRun proxy votes and corporate-action elections for tokenized holders as of a record date.
Use cases built the same way
- Stablecoin wallet top-upsCredit a user’s app balance when a stablecoin transfer to their embedded wallet confirms.
- Authorize and capture stablecoin paymentsHold a buyer’s stablecoins in an escrow contract at checkout, capture them to the merchant as orders ship, void what can’t be filled and refund after capture.
- Programmable escrow for B2B stablecoin paymentsHold a buyer’s stablecoin payment until delivery, a milestone or a deadline, then release it to the seller or refund the buyer.
- Tokenized deposits for interbank settlementSettle payments between banks in tokenized deposits and tie each one to the core.
Track tokenized loan participation payments 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.