Quick Reference
| Property | Value |
|---|---|
| Protocol | HTTP/1.1 + JSON |
| Default port | 7575 |
| Underlying API | Ledger API v2 (gRPC) |
| Authentication | JWT Bearer tokens |
When to Use the JSON API
The JSON API is the recommended access method when:- You’re building browser-based frontends or web applications
- Your language/framework works better with HTTP/JSON than gRPC
- You want simpler tooling for development and debugging (curl, Postman, etc.)
- You’re using the TypeScript/JavaScript Wallet SDK
- You need maximum performance for high-throughput streaming
- You’re using Java and want the native gRPC experience
- You need access to gRPC-specific features not exposed via JSON
Key Endpoints
Version Check
Command Submission
/v2/commands/submit-and-wait-for-transaction (returns the full transaction) and /v2/commands/async/submit (returns immediately).
Active Contract Queries
Transaction Streaming
The JSON API supports both HTTP POST and WebSocket connections for streaming updates. Use/v2/updates or /v2/updates/flats for flat transaction streams, and /v2/updates/trees for transaction trees. WebSocket connections use the daml.ws.auth subprotocol.
Ledger End
GET /v2/state/ledger-end returns the latest absolute offset on the participant. Use it as the activeAtOffset value when querying the ACS to get the most recent state, or pass an older non-pruned offset to read state at a historical point.
Interactive Submission
External-party command submission goes through two endpoints rather than the standardsubmit-and-wait flow:
POST /v2/interactive-submission/prepare— produces a prepared transaction the external party signs off-participant.POST /v2/interactive-submission/execute— submits the signed prepared transaction back to the participant for ledger execution.
Configuration
The JSON API is configured via thehttp-ledger-api section of the participant node’s configuration. In cn-quickstart LocalNet deployments, it is pre-configured and available at http://localhost:7575.
The OpenAPI and AsyncAPI specifications are available at runtime:
Authentication
Pass a JWT Bearer token in theAuthorization header:
Related Pages
- Ledger API — gRPC Ledger API overview
- Ledger API Reference (AppDev) — Detailed service documentation
- Wallet Configuration — SDK configuration including JSON API endpoints