Complex data types

The NEO 3.x system makes heavy use of a small handful of complex data types which are good to be aware off. Because of their heavy usage throughout the whole system, and especially in the virtual machine, it is encouraged to use these types instead of the close looking Python native types like bytes or int. The devil is in the details.

UInt160

A 20-byte data structure commonly used to uniquely identify smart contracts and signing authorities (i.e. Consensus nodes and Transaction owners). See UInt160.

UInt256

A 32-byte data structure commonly used for storing hashes that can uniquely identify Blocks and Transactions among other objects. See UInt256.

BigInteger

A full port of the C# reference implementation implemented as a C-extension. See BigInteger.