Deployment architecture
Two processes, one Postgres instance, TLS to the settlement network — that’s the footprint.Onboarding
Receive credentials
Musubi provisions:
- Canton Party ID — your identity on the settlement network
- JWT signing credentials — for API authentication
- Network connectivity details — settlement network endpoint + TLS certificates
Deploy the backend
Deploy the Musubi custodian backend in your infrastructure:
- Configure with your Party ID and role (
custodian-senderorcustodian-receiver) - Point it at your PostgreSQL instance
- Establish TLS connectivity to the settlement network
Whitelist the settlement address
Whitelist the Musubi settlement address in your custody platform. One-time setup. This is the only destination that receives assets during DvP.
Onboard institutional clients
For each institution that will use you as custodian:
- Set up their custody account in your platform (your existing process)
- Confirm their Canton Party ID
- Ensure sufficient stablecoin balance
- They reference your Party ID when creating orders
TLS + networking
- All traffic to the settlement network is mTLS. Certificates are provisioned as part of your credentials.
- The backend’s REST + SSE endpoints should terminate behind your own TLS ingress.
- Outbound egress from the backend to the settlement network endpoint must be allowed through your firewall.
- The PostgreSQL instance should sit on a private subnet; the backend connects via your internal connection string.
Day-2 operations
Monitoring
GET /api/v1/dashboard/stats provides:
| Metric | Description |
|---|---|
| Orders by status | PENDING / QUOTED / EXECUTING / SETTLED / FAILED / EXPIRED counts |
| Settled volume | Total JPYSC0 and USDCx settled through your custody |
| Recent settlement | Last settlement timestamp and average settlement time |
- PENDING accumulating — quoting issues or institution-side delays
- FAILED orders — investigate
failure_reason, notify the affected institution - Volume spikes — ensure sufficient stablecoin balances
Institution relationships
Institutions reference your Party ID (sender_custodian_party_id or receiver_custodian_party_id) when creating orders. Practical implications:
- Onboard them first — institutions can’t reference you until you’ve set up their custody account
- Multiple institutions can reference you simultaneously
- You see all orders where you are the custodian, across all institutional clients
Testnet validation
Scenarios to run before production:- Sender custodian happy path — see proposal → accept → review quotes → co-sign best quote → verify SETTLED
- Receiver custodian happy path — verify settlement confirmation arrives with correct amounts
- Reject proposal — reject a proposal, verify the order is cancelled
- Quote expiry — wait for quotes to expire, verify EXPIRED transition
- Reconciliation — match
transaction_hash, amounts, and timestamps across your systems - Audit export — run your first batch download against settled testnet orders and confirm it reconciles