Interfaces and Identity
Two kinds of call
Section titled “Two kinds of call”| Query call | Update call | |
|---|---|---|
| Executed on | One node | Every node, through consensus |
| Can modify state | No | Yes |
| Typical latency | ~100 ms on a lightly loaded subnet | ~2 s on a lightly loaded subnet |
| Response is threshold-signed | Not by default | Yes |
| Instruction limit | 5 billion | 40 billion |
| Response size limit | 3 MiB | 2 MiB |
Limits: Resource limits, ICP developer documentation, retrieved 2026-08-19. Latency figures are typical values on a lightly loaded engine, not guaranteed ones.
An update call takes at least two consensus rounds, with a typical block rate of one per second — this is where the two-second figure comes from, and it is a floor set by the protocol rather than by hardware. No amount of additional hardware makes an update call substantially faster.
Read-heavy workloads should use query calls. Because a query is answered by a single node without consensus, it is not threshold-signed by default and therefore does not carry the verifiability guarantee described in Trust and Security Model. Where a read must be verifiable, it must be made as an update call or use a certified read mechanism.
Message size limits
Section titled “Message size limits”An ingress message payload is capped at 2 MiB, as is an inter-canister payload across engines. A same-engine inter-canister request may reach 10 MiB. The full set of protocol figures is in Cloud Engine.
Any payload above these thresholds must be chunked by the application. There is no platform-provided large-object transfer; see Limitations.
Identity
Section titled “Identity”The unit of identity is a principal, derived from a public key. A caller signs its requests; the engine identifies the caller by the resulting principal. There is no account, no password, and no directory.
- There is no platform-level role model. Authorisation is implemented inside the canister, by the application. What a principal may do is application logic, not configuration.
- A credential is a key pair. Rotation, storage and revocation are the caller’s responsibility and must be designed in.
- There is no directory integration. Mapping existing organisational identities onto principals is work the integrating team does.