evm_modexp

Computes base^exp mod modulus over three fixed-width UINT256 values. Returns 0 when modulus is 0 or 1; for other moduli, exponent 0 returns 1. This is not the EVM MODEXP precompile byte interface: it does not accept length-prefixed byte sequences, produce variable-width output, or model gas. NULL input propagates to NULL.

Example

Local

1
SELECT evm_modexp(5::UINT256, 3::UINT256, 13::UINT256)::VARCHAR AS result;
2
-- => [{"result":"8"}]
Notebook ready in readonly mode.

API reference

Exact signatures with descriptions, requirements, inputs, returns, and examples.

evm_modexp(UINT256, UINT256, UINT256) #

Fixed-width UINT256 modular exponentiation, returning a UINT256 residue.

Inputs

Name Type Use
base UINT256

UINT256 base.

required positional
exp UINT256

UINT256 non-negative exponent.

required positional
mod UINT256

UINT256 modulus; 0 and 1 return zero.

required positional

Returns

Name Type
result UINT256

Modular residue. UINT256 base^exp mod modulus, or NULL when any input is NULL.

Category and tags

Category
EVM utilities
Tag
Types
Tag
EVM