Tokens that carry their own rules.

Trenal is a draft Ethereum standard. Vesting, resale limits and payouts live inside the token itself.

$TRENAL 0x05E007f7d63996827D2Da4A1a632A33F8F60b37a Etherscan

What that means

Try it

Pick a token, choose who you are, and press an action.

Actions

State

Who can do what

History

    Want to build your own? Open Trenal Studio

    For developers

    Four functions and two events on top of ERC-20. Existing wallets and pools keep working.

    // SPDX-License-Identifier: CC0-1.0
    pragma solidity ^0.8.24;
    
    interface ITrenal is IERC20 {
        event StateChanged(uint256 indexed id, bytes32 indexed key, bytes value);
        event Acted(uint256 indexed id, address indexed by, bytes4 action);
    
        error NotAuthorized(address caller, bytes4 action);
        error ConditionFailed(bytes4 action, string reason);
    
        /// What the token knows.
        function stateOf(uint256 id) external view returns (bytes memory);
        /// Who may do what.
        function rightsOf(uint256 id, address who) external view returns (bytes32);
        /// Can `who` do `action` right now?
        function can(uint256 id, address who, bytes4 action) external view returns (bool);
        /// Do it.
        function act(uint256 id, bytes4 action, bytes calldata data) external;
    }

    Contracts

    Live on Ethereum. Source verified on Etherscan.

    Roadmap

    1. Draft interface

      Published

    2. Contracts on Ethereum

      Live

    3. Wallet preview

      Next

    4. ERC submission

      Later