Skip to content

StdLib ​

Back to Native Contracts

Provides serialization, encoding, and string manipulation utilities. StdLib methods are exposed through Syscalls.sol.

Methods ​

MethodSignatureReturnSafeDescription
serializeserialize(bytes)bytes✅Serialize a NeoVM stack item to bytes.
deserializedeserialize(bytes)bytes✅Deserialize bytes back to a stack item.
jsonSerializejsonSerialize(bytes)bytes✅Serialize a stack item to JSON.
jsonDeserializejsonDeserialize(bytes)bytes✅Deserialize JSON to a stack item.
base64Encodebase64Encode(bytes)string✅Base64 encode.
base64Decodebase64Decode(string)bytes✅Base64 decode.
base58Encodebase58Encode(bytes)string✅Base58 encode.
base58Decodebase58Decode(string)bytes✅Base58 decode.
itoaitoa(int256,uint8)string✅Integer to string (base 10 or 16).
atoiatoi(string,uint8)int256✅String to integer (base 10 or 16).
memoryComparememoryCompare(bytes,bytes)int256✅Lexicographic byte comparison. Returns -1, 0, or 1.
memorySearchmemorySearch(bytes,bytes,int256,bool)int256✅Search for a byte pattern. Returns index or -1.
stringSplitstringSplit(string,string,bool)string[]✅Split string by separator.
strLenstrLen(string)uint256✅String length in text elements (not bytes).

Code Example ​

solidity
import "devpack/contracts/Syscalls.sol";

contract DataEncoder {
    function encodeForStorage(uint256 value) public view returns (bytes memory) {
        return Syscalls.serialize(abi.encode(value));
    }

    function toBase64(bytes memory data) public view returns (string memory) {
        return Syscalls.base64Encode(data);
    }

    function numberToHexString(int256 value) public view returns (string memory) {
        return Syscalls.itoa(value, 16);
    }

    function splitCsv(string memory csv) public view returns (string[] memory) {
        return Syscalls.stringSplit(csv, ",", true);
    }
}

MIT Licensed