Architecture
Automated Quoting
For competitive latency, subscribe to SSE events and respond programmatically: Latency path: SSE event -> your pricing logic -> API call. Institutions typically select quotes within ~3 seconds of the first quote arriving, so response time matters.Onboarding Checklist
Receive Credentials
Musubi provisions your:
- Canton Party ID — your identity on the settlement network
- JWT signing credentials — for API authentication
- Network connectivity details — settlement network endpoint and TLS certificates
Deposit Liquidity
Deposit USDCx sufficient for your expected quoting volume. Funds are committed only when a quote is accepted and settlement executes — pending quotes do not lock funds.
Deploy Your Backend
Deploy the Musubi market maker backend container in your infrastructure:
- Configure with your Party ID and JWT credentials
- Connect to your PostgreSQL instance
- Establish TLS connectivity to the settlement network
Connectivity Test
Verify your setup:
GET /health— confirms backend is running and connectedGET /whoami— confirms your Party ID andmarket-makerroleGET /quote-requests— verify you can see active RFQs
Test Quoting
On testnet:
- Wait for a quote request (or ask your integration contact to create a test order)
- Submit a quote via
POST /quote-requests/{intent_id}/quotes - Verify your quote appears in
GET /quotes - If accepted, verify settlement record in
GET /settlements
Monitoring
Dashboard Stats
GET /api/v1/dashboard/stats returns:
| Section | Metrics |
|---|---|
| Quoting | quotes_submitted, quotes_accepted, quotes_rejected, quotes_expired, win_rate |
| Volume | total_source_traded (JPYSC0 received), total_target_traded (USDCx delivered) |
| Activity | active_quote_requests (currently quotable) |
What to Watch
- Win rate trending down: your spreads may be too wide relative to competitors
- Active requests spiking: increased demand — ensure sufficient USDCx balance
- Quotes expired increasing: your
valid_untilwindows may be too short, or you’re quoting on requests near expiry
Testing on Testnet
The testnet environment includes a mock institution that creates orders for testing. Scenarios to validate:- Happy path: Receive RFQ -> submit quote -> verify ACCEPTED -> verify settlement record
- Rejected quote: Submit a quote with a poor rate while another MM has a better one -> verify REJECTED
- Quote expiry: Submit a quote with a very short
valid_until-> verify EXPIRED - Multiple quotes: Submit multiple quotes for the same request -> verify all tracked independently
- Settlement reconciliation: Verify
mm_delivered_target_amount,mm_delivered_target_amount, andtransaction_hashin settlement record