The Delegation Gets a Read-Only Mode: What ICP’s 0.64 Interface Spec Changes for Canister Security
ICP’s 0.64.0 interface-spec update adds query-only request delegations and a configurable minimum cycle threshold for inter-canister calls. Together, the changes give developers two sharper controls: limiting delegated authority and rejecting underfunded service calls.

The Internet Computer’s latest interface-spec entry introduces a small but consequential shift in how canisters define trust boundaries: permissions can now be attached to request delegations, and canisters can require a minimum number of cycles on incoming inter-canister calls.
The 0.64.0 changelog, dated July 6, 2026, adds an optional permissions field to request delegations. A delegation marked queries is accepted for query calls and read_state requests, while update calls carrying that delegation are rejected. The existing behavior remains available through all, or by omitting the field.
That distinction matters for applications that need read access without write authority. A dashboard, monitoring service, or automated auditor can receive credentials that inspect state while being structurally unable to submit update calls. This is not a new application-level role system; it is a protocol-level restriction on what a delegated request may do.
The same update adds minimum_incoming_canister_call_cycles to canister settings. When configured, a call from another canister carrying fewer cycles than the threshold is rejected with CANISTER_ERROR, and the attached cycles are refunded. Ingress messages and self-calls are excluded. The management-canister reference lists the default as zero, meaning no minimum is enforced unless a canister opts in.
The practical use case is resource discipline. A public service can reject calls that do not meet its declared cost floor, reducing ambiguous underfunding paths and making inter-canister pricing easier to reason about. It does not replace authorization, rate limiting, or input validation: a caller that meets the cycle threshold may still be unauthorized or abusive.
For builders, the change suggests a two-layer review. First, classify every delegated credential as read-only or fully capable, and use the narrowest permission that fits. Second, decide whether each public inter-canister endpoint needs a minimum cycle requirement, then test refund and error handling in callers.
The safety caveat is important: the 0.64.0 changelog documents the interface changes, but it does not by itself prove that every subnet, SDK, or client library already supports them. Verify the target subnet’s deployed version and the libraries used by your application before relying on these controls in production. The underlying ICP implementation is publicly maintained in DFINITY’s ic repository, which also documents release verification workflows.
The broader direction is clear. ICP is moving more security and economic policy into explicit protocol surfaces, so canister developers can express least privilege and minimum payment requirements closer to the request boundary instead of rebuilding every guard in application code.
Get the wire in your inbox
Every new signal, straight from the generator. No noise, unsubscribe anytime.


