Skip to main content
All comparison operations return ebool. Equality checks (eq, ne) work on all encrypted types including eaddress. Ordering checks (lt, lte, gt, gte) and min/max work on euint8 | euint16 | euint32 | euint64 | euint128.

Equality

eq

ebool isEqual = FHE.eq(a, b);
ebool isEqual = FHE.eq(address1, address2); // eaddress supported

ne

ebool isNotEqual = FHE.ne(a, b);

Ordering

lt

ebool isLess = FHE.lt(a, b);

lte

ebool isLessOrEqual = FHE.lte(a, b);

gt

ebool isGreater = FHE.gt(a, b);

gte

ebool isGreaterOrEqual = FHE.gte(a, b);

Min / Max

min

euint32 minimum = FHE.min(a, b);

max

euint32 maximum = FHE.max(a, b);

Select

Conditionally selects between two encrypted values based on an encrypted boolean. Works on all encrypted types including eaddress.
Use select instead of if/else statements when working with encrypted values. Conditional branching doesn’t work with encrypted data.
euint8 result = FHE.select(condition, a, b);
eaddress result = FHE.select(condition, addr1, addr2);