enums in solidity

Enums in Solidity

Enums in Solidity are used to create a new user-defined type. They are explicitly convertible to and from all integer types but implicit conversion is not allowed. Enums are defined using the enum keyword and can contain a list of named constants. Each constant is assigned a value, which starts at 0 and increments by 1 for each subsequent constant if not specified. Enums are useful for representing a set of related options or choices within a contract.


pragma solidity ^0.8.0;

contract EnumsExample {
    enum State { Inactive, Active, Deprecated }

    State public state;

    constructor() {
        state = State.Inactive;

    function activate() public {
        state = State.Active;

    function deactivate() public {
        state = State.Inactive;

Enums can be defined within a contract and used to represent state transitions or options within the contract.

Enums provide a way to create a set of named constants in Solidity, making the code more readable and self-explanatory.

Enums are an important feature in Solidity for defining custom types and improving code clarity.