glossary·2026-03-09·1 min read

self.caller

self.caller

self.caller is a built-in Leo expression that returns the address of the account executing the current transition. It serves the same role as msg.sender in Solidity - it identifies who called the function.

leo
transition transfer(receiver: address, amount: u64) {
    assert_eq(self.caller, owner); // Only the owner can transfer
}

You use self.caller for access control, ownership verification, and audit trails. It is available inside any entry-point function but not inside free helper functions defined outside the program block.