What are canister smart contracts?

Canister smart contracts are computational units that include both program and state. A software canister is similar to a container in that both are deployed as a software unit that contains compiled code and dependencies for a dapp or system.

Containerization allows for applications to be decoupled from the environment, allowing for easy and reliable deployment. The canister differs from a container, however, in that it also stores information about the current software state with a record of preceding events and user interactions.

While a containerized application might include information about the state of the environment in which the application runs, a software canister is able to persist a record of state changes that resulted from an application’s functions being used.

This concept of a canister consisting of both program and state is an important one because when a smart contract function is invoked by sending a message to one of its entry points, there are only two types of calls: non-committing query calls and committing update calls.

Learn more about canister smart contracts by visiting the Internet Computer webpage.

Further Reading

Updated