Skip to main content

Commands

CommandUse it for
estimate <file>Readiness checks plus traffic cost for one command JSON file.
simulate <file>Prepared transaction view and node breakdown for a command JSON file.
inspectValidator readiness checks. Default is light and fast.
inspect --quickConfig and Ledger API reachability only.
inspect --fullExhaustive package, party, DAR, and vetting counts. Can be slow.
balanceTraffic balance when Admin or ledger state can provide it.
watchRecent transaction stream for development/debugging.

Examples​

dpm canton-profiler inspect --network testnet
dpm canton-profiler inspect --quick --network testnet
dpm canton-profiler inspect --full --network testnet
dpm canton-profiler inspect --list-packages --network testnet
dpm canton-profiler estimate ./commands/create.json --network testnet
dpm canton-profiler estimate ./commands/create.json --network testnet --json --fail-on-error
dpm canton-profiler simulate ./commands/create.json --network testnet --json
dpm canton-profiler balance --network testnet --json
dpm canton-profiler watch --network testnet --limit 10

Global flags​

FlagPurpose
--network <name>Selects a configured network.
--token <jwt>Overrides the configured JWT source for this run.
--jsonPrints machine-readable output for scripts and CI.
--fail-on-errorReturns non-zero when critical warnings/checks are present.

CI pattern​

EST=$(dpm canton-profiler estimate ./cmd.json --network testnet --json --fail-on-error)
echo "$EST" | jq -e '.readiness[] | select(.id=="ledger.reachable") | .status=="pass"'
echo "$EST" | jq -e '[.warnings[]?.code] | index("W007") | not'

Output and exit codes​

By default, commands print human-readable text for the terminal. Add --json when a script or CI job needs to parse the result.

Sample output: inspect --quick​

Canton Validator Inspection
Network : testnet (validator.example.com:5001)
Config
gRPC limit : 4.00 MB
TLS : disabled
synchronizerId : —
Ledger API
✓ Reachable (3.5.3)

Sample output: inspect​

Canton Validator Inspection
Network : testnet (validator.example.com:5001)
Config
gRPC limit : 4.00 MB
TLS : disabled
synchronizerId : —
scanApiUrl : https://scan.sv.test.canton.global
Readiness
✓ gRPC inbound limit 4.00 MB
✓ Ledger API reachable (3.5.3)
✓ Admin API reachable
✓ Synchronizer connected and healthy
✓ 42 package(s) uploaded on ledger
✓ Vetting API reachable

Sample output: estimate​

Canton Pre-Flight Transaction Profiler
Network : testnet (validator.example.com:5001)
Mode : STANDARD (ledger + scan-proxy)
Payload size
1.2 KB / 4.00 MB 0.0% [OK]
Readiness
✓ All 1 command parties known to ledger
✓ Template package uploaded
✓ Template package vetted
✓ PrepareSubmission succeeded
Traffic cost
Bytes : 4.8 KB
CC : 0.012
USD : $0.04
Parties : 2
✓ Pre-flight check passed
Elapsed: 1240ms

Sample output: --json​

Inspect (excerpt):

{
"network": "testnet",
"validator": "validator.example.com:5001",
"ledgerVersion": "3.5.3",
"readiness": [
{ "id": "ledger.reachable", "status": "pass", "message": "Ledger API reachable (3.5.3)" },
{ "id": "admin.reachable", "status": "pass", "message": "Admin API reachable" },
{ "id": "packages.uploaded_count", "status": "pass", "message": "42 package(s) uploaded on ledger" }
]
}

Estimate (excerpt):

{
"mode": "STANDARD",
"network": "testnet",
"validator": "validator.example.com:5001",
"trafficBytes": 4915,
"partyCount": 2,
"cost": { "trafficBytes": 4915, "ccCost": 0.012, "usdCost": 0.04, "partyCount": 2 },
"readiness": [
{ "id": "parties.known", "status": "pass", "message": "All 1 command parties known to ledger" },
{ "id": "prepare.ok", "status": "pass", "message": "PrepareSubmission succeeded" }
],
"warnings": [],
"exitCode": 0,
"elapsedMs": 1240
}

Check statuses​

StatusMeaning
passThe check succeeded.
warnThe check found a problem or partial result; review warnings.
skipThe check is not applicable or the required API is unavailable.
failA critical check failed.

Exit codes​

Exit codeWhen
0The command completed without critical failures.
1Ledger reachability failed, synchronizer checks failed off LocalNet, or --fail-on-error found critical warnings.

Readiness IDs​

IDCheck
ledger.reachableLedger API version can be read.
admin.reachableAdmin gRPC responds to an RPC.
sync.connectedConnected synchronizers are healthy.
sync.configured_id_healthyConfigured synchronizerId matches a healthy synchronizer.
packages.uploaded_countPackage listing is available.
packages.vetted_countVetting probe or count is available.
parties.countParty listing, when requested by --full or --list-parties.
dar.uploadedDAR listing, when requested by --full or --list-dars.
parties.knownCommand parties exist on the ledger.
packages.uploadedCommand template package is available.
packages.vettedCommand template package is vetted on the target synchronizer.
prepare.okPrepareSubmission succeeded.

Capability modes​

The profiler selects the best available mode automatically. You do not set the mode manually.

ModeAvailable APIsResult
STANDARDLedger API, JWT, optional Scan/scan-proxyExact prepare bytes, readiness checks, CC/USD upper bound when rates are available.
FULLSTANDARD plus reachable Admin API and synchronizer contextLive base remainder, purchased traffic, paid spill, and stronger synchronizer diagnostics.
LocalNetLocal Ledger APISize/readiness checks. Traffic fees are disabled.

Operational notes​

Inspect performance​

  • inspect is light by default and avoids expensive full party/DAR scans.
  • inspect --full is for audits and can be slow on large participants.
  • --list-packages, --list-parties, and --list-dars request explicit listings.