Autonomous functions allow developers, collaborators and organisations to create self-executing programs on the blockchain.
Autonomous Functions are blockchain programs that execute custom instructions installed on the blockchain. They react to transactions and perform operations that alter the state of a repository. Repositories use Autonomous Functions to create decentralised applications and to create custom ownership and governance behaviours. They are also known as Smart Contracts.
Developers do not need to learn a new language to build autonomous functions. They will use well-established languages like Typescript, Go, C++, Rust and WebAssembly.
Autonomous functions are deployed from git repositories. Therefore, they are invoked using the unique address of the git repository. The benefit of this is that the autonomous function that does not required immutability can receive upgrades without changing its invocation address.
An autonomous function enables the governance configurations of a repository to be customised in ways that may differ from the protocol's default. It can act as a middleware for when the protocol’s defaults are undesirable.
Autonomous Functions can be upgraded to fix bugs or security issues. Due to their repo-addressability, dependent applications and contracts will not break since no new address is created. Users will be able to reference old versions of Autonomous Functions by their commit ID if/when desired.