Derive Keys

Type: object

Bulk derive child keys from user's root private key. This are Volatile Keys, keys which derivation path may not be persisted or handled properly, implying a potential loss of signability, minting, spending or staking rights. It's recommended to use saveConfig and loadConfig for creating keys to ensure users can reconstruct them in the future. Resulting object properties will be named after argument indexes or property names

No Additional Properties
Example:

{
    "type": "deriveKeys",
    "keys": {
        "James": {
            "name": "James",
            "kind": "spend",
            "accountIndex": 34,
            "addressIndex": 423
        },
        "Robe": {
            "name": "Robe",
            "kind": "stake",
            "accountIndex": 632,
            "addressIndex": 7434
        },
        "Julie": {
            "name": "Julie",
            "kind": "spend",
            "accountIndex": 26,
            "addressIndex": 754
        },
        "spend10": {
            "name": "spend10",
            "path": "m/1852h/1815h/5h/0/10"
        },
        "stake10": {
            "name": "stake10",
            "path": "m/1852h/1815h/5h/2/10"
        }
    }
}

Type: const
Specific value: "deriveKeys"


List or Key-Value Map of Key Derivations

Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.


Reserved language functions

Type: string

function return(result: any ): void ;

The function return allows you to stop execution of inline code block at that position and return a value as result of entire block execution.

Arguments

  • result (any) - value to return [OPTIONAL]

More

The function fail() is similar but halts the execution of entire script with failure instead.

Must match regular expression: (?<![\w_])return\s*\(.*\)(?![\w_])
Examples:

"{ return(5) }"
"{ return('Hello World!') }"
"{ return(get('cache.myAddress')) }"
Type: string

function fail(message: string ): void ;

The function fail allows you to stop execution of inline code block at that position and also entire script execution in error state.
User can provide a message as argument to became the message of the error to be thrown.

Arguments

  • message (string) - error message to throw [OPTIONAL]

More

The function return() is similar but halts the execution of inline code block successfully, returning a value.

Must match regular expression: (?<![\w_])fail\s*\(.*\)(?![\w_])
Examples:

"{ fail('This is an error message') }"
"{ fail() }"

System functions for memory management, logging, etc..

Type: string

function set(path: string, value: any ): any ;

The function set allows you to set arbitrary data on script context for later reuse.

Arguments

  • path (string) - path of the value to set
  • value (any) - variable to store

More

Use get() with path='global.<path>' to access and reuse the value later

Must match regular expression: (?<![\w_])set\s*\(.*\)(?![\w_])
Examples:

"{ set('temp1','Hello World!') }"
"{ set('temp2',get('global.temp1')) }"
Type: string

function get(path: string ): any ;

The function get allows you to get arbitrary data from script context.

Arguments

  • path (string) - path of the value to retrieve

More

Use set() function to declare user variables inside a global object which you can later access using get()

Must match regular expression: (?<![\w_])get\s*\(.*\)(?![\w_])
Examples:

"{ get('cache.myAddress') }"
"{ get('cache.buildTransaction.txHex') }"
"{ set('temp1','Hello World!'); get('global.temp1'); }"
Type: string

function console(type: 'log'|'info'|'warn'|'error', ...values: any ): void ;

Dumps to console one or several values, which can be string messages or of any type

Arguments

  • type ('log'|'info'|'warn'|'error') - value to pretty print in the logs
  • ...values (any) - value to pretty print in the logs [REST]
Must match regular expression: (?<![\w_])console\s*\(.*\)(?![\w_])
Examples:

"{ console('log','This is a log') }"
"{ console('info','This is an information') }"
"{ console('warn','This is a warning') }"
"{ console('error','This is an error') }"
"{ console('info','Hello web3 user!','Your address is:', get('cache.myAddress')) }"
"{ console('log',get('global.temp1')) }"
Type: string

[DEPRECATED] function delay(timeout: number ): void ;

Pauses the execution for timeout milliseconds.

Arguments

  • timeout (number) - number of milliseconds for the timeout
Must match regular expression: (?<![\w_])delay\s*\(.*\)(?![\w_])

String manipulation functions

Type: string

function truncate(value: string, prefixLength: number, suffixLength: number, separator: string ): string ;

Truncates a string from start to prefixLength characters, attaches a separator string, and finally adds the last suffixLength characters of the string
Useful for truncating long texts, or hashes and addresses when you want to keep the beginning and the end of them and discard the middle.

Arguments

  • value (string) - utf-8 string to be truncated
  • prefixLength (number) - initial number of characters to be included in resulting string
  • suffixLength (number) - final number of characters to be included in resulting string
  • separator (string) - string to be included between prefix and suffix parts of the string

More

Example:

addr1qzk45...kwg (prefixLength=10 ,suffixLength=3, separator="...")

Must match regular expression: (?<![\w_])truncate\s*\(.*\)(?![\w_])
Type: string

function replaceAll(text: string, match: string, value: string ): string ;

Replaces all match occurrences inside text by value

Arguments

  • text (string) - utf-8 string where to search and replace
  • match (string) - utf-8 exact string that will be searched for and replaced by value
  • value (string) - utf-8 string value to replace with
Must match regular expression: (?<![\w_])replaceAll\s*\(.*\)(?![\w_])

Array manipulation functions

Type: string

function getArray(...values: any ): array ;

Returns an array with each provided argument as an item

Arguments

  • ...values (any) - items of the array of any type [REST]

More

base

Must match regular expression: (?<![\w_])getArray\s*\(.*\)(?![\w_])
Example:

"{ getArray('apple','banana',43, get('cache.address')) }"

Encoding and decoding functions

Type: string

function jsonToObj(value: string ): any ;

Parses a JSON string and returns a value of JSON-supported type

Arguments

  • value (string) - string value to parse, must be a valid JSON string

More

Use objToJson() function to serialize JSON

Must match regular expression: (?<![\w_])jsonToObj\s*\(.*\)(?![\w_])
Type: string

function objToJson(value: any ): string ;

Turns a value of JSON-supported type into a JSON string

Arguments

  • value (any) - value to serialize as JSON string

More

Use jsonToObj() function to parse JSON

Must match regular expression: (?<![\w_])objToJson\s*\(.*\)(?![\w_])
Type: string

function strToHex(value: string ): string ;

Encodes a utf-8 text string into hexadecimal string

Arguments

  • value (string) - utf-8 text string

More

Use hexToStr() function to decode from hexadecimal encoding

Must match regular expression: (?<![\w_])strToHex\s*\(.*\)(?![\w_])
Type: string

function hexToStr(value: string ): string ;

Decodes an hexadecimal string into the former utf-8 text string

Arguments

  • value (string) - hexadecimal encoded string

More

Use strToHex() function to encode using hexadecimal encoding

Must match regular expression: (?<![\w_])hexToStr\s*\(.*\)(?![\w_])
Type: string

function strToBase64(value: string ): string ;

Encodes a utf-8 text string into base64 string

Arguments

  • value (string) - utf-8 text string

More

Use base64ToStr() function to decode from base64 encoding

Must match regular expression: (?<![\w_])strToBase64\s*\(.*\)(?![\w_])
Type: string

function base64ToStr(value: string ): string ;

Decodes a base64 string into a utf-8 text string

Arguments

  • value (string) - base64 encoded string

More

Use strToBase64() function to encode using base64 encoding

Must match regular expression: (?<![\w_])base64ToStr\s*\(.*\)(?![\w_])
Type: string

function strToMetadataStr(value: string ): string|string[] ;

Automatically splits a utf-8 text string into a list of 64 bytes long strings if value length is bigger than 64 bytes
Otherwise, it returns the original string

Strings in Cardano transaction's auxiliary data (metadata) can't be longer than 64 bytes.
Many standards use a list of short strings as a workaround.

Arguments

  • value (string) - utf-8 text to be adapted for metadata usage

More

Use metadataStrToStr() function to convert back to string a metadata string

Must match regular expression: (?<![\w_])strToMetadataStr\s*\(.*\)(?![\w_])
Type: string

function metadataStrToStr(value: string|string[] ): string ;

If a list of strings ( produced by strToMetadataStr ) is provided, joins it into a single string
If a string is provided, returns the string

Strings in transaction's auxiliary data (metadata) can't be longer than 64 bytes.
Many standards use a list of short strings as a workaround.

Arguments

  • value (string|string[]) - string or list of strings produced by strToMetadataStr()

More

Use strToMetadataStr() function to convert a string into a metadata string

Must match regular expression: (?<![\w_])metadataStrToStr\s*\(.*\)(?![\w_])

Cryptographic functions

Type: string

function getAddressInfo(address: string ): object ;

Parses a Cardano address and returns information as an object with many useful properties

Arguments

  • address (string) - a valid Cardano address
Must match regular expression: (?<![\w_])getAddressInfo\s*\(.*\)(?![\w_])
Type: string

function sha512(data: string ): string ;

Calculates SHA512 hash of data string

Arguments

  • data (string) - utf-8 string to be hashed
Must match regular expression: (?<![\w_])sha512\s*\(.*\)(?![\w_])
Type: string

function sha256(data: string ): string ;

Calculates SHA256 hash of data string

Arguments

  • data (string) - utf-8 string to be hashed
Must match regular expression: (?<![\w_])sha256\s*\(.*\)(?![\w_])
Type: string

function sha1(data: string ): string ;

Calculates SHA1 hash of data string

Arguments

  • data (string) - utf-8 string to be hashed
Must match regular expression: (?<![\w_])sha1\s*\(.*\)(?![\w_])
Type: string

function md5(data: string ): string ;

Calculates MD5 hash of data string

Arguments

  • data (string) - utf-8 string to be hashed
Must match regular expression: (?<![\w_])md5\s*\(.*\)(?![\w_])
Type: string

function uuid( ): string ;

Generates a random RFC4122 UUID v4

Arguments

none
Must match regular expression: (?<![\w_])uuid\s*\(.*\)(?![\w_])

Arithmetic functions

Type: string

function addBigNum(value: string|number, ...addends: string|number ): string ;

Adds extraArgs numbers to an initial value.

BigNum are big positive integers provided as strings.
This function also convert numbers on arguments into BigNum string

Returns the sum as a BigNum string.

Arguments

  • value (string|number) - initial value (BigNum)
  • ...addends (string|number) - value or values to be added (BigNum) [REST]
Must match regular expression: (?<![\w_])addBigNum\s*\(.*\)(?![\w_])
Type: string

function subBigNum(value: string|number, ...subtrahends: string|number ): string ;

Subtracts subtrahends numbers from an initial value minuend. Fails on underflow.

BigNum are big positive integers provided as strings.
This function also convert numbers on arguments into BigNum string

Returns the subtraction as a BigNum string.

Arguments

  • value (string|number) - minuend, initial value (BigNum)
  • ...subtrahends (string|number) - value or values to be subtracted (BigNum) [REST]
Must match regular expression: (?<![\w_])subBigNum\s*\(.*\)(?![\w_])
Type: string

function mulBigNum(value: string|number, ...multipliers: string|number ): string ;

Multiplies multipliers numbers to an initial value.

BigNum are big positive integers provided as strings.
This function also convert numbers on arguments into BigNum string

Returns the multiplication as a BigNum string.

Arguments

  • value (string|number) - initial value (BigNum)
  • ...multipliers (string|number) - value or values to be multiplied with (BigNum) [REST]
Must match regular expression: (?<![\w_])mulBigNum\s*\(.*\)(?![\w_])
Must match regular expression: ^\{(.|[\r\n])*\}$
Type: array

Must contain a minimum of 1 items

Each item of this array must be:


Type: object

Parameters required to derive a child key pair from wallet root private key

Type: object

Use a valid BIP32-Ed25519 (Shelley) or BIP44-Ed25519 (Byron) Cardano derivation path to derive a child key pair from wallet root private key

No Additional Properties

Type: string

Wallet stores locally specific objects for later reuse. This is the name property of this record. Names can collide.


A valid BIP32-Ed25519 (Shelley) or BIP44-Ed25519 (Byron) Cardano derivation path serialized as string mask with hardening markers (h or ')

Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting

Examples:

"m/1852h/1815h/0h/0/0"
"m/1852'/1815'/0'/2/0"
Type: object

Use JSON parameters to derive a child key pair from wallet root private key

No Additional Properties

Type: string

Wallet stores locally specific objects for later reuse. This is the name property of this record. Names can collide.


Type: enum (of string)

Must be one of:

  • "spend"
  • "stake"
Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting


Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting


Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting
Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting
Type: object
No Additional Properties

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression:

Type: object

Parameters required to derive a child key pair from wallet root private key

Same definition as Key Derivation
Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting
Type: object
No Additional Properties

All properties whose name matches the following regular expression must respect the following conditions

Property name regular expression:

Type: object

Parameters required to derive a child key pair from wallet root private key

Same definition as Key Derivation
Type: string

Inline Scripting Language (ISL) is a complementary programming language to process, format, reuse, link, or pipe GCScript function results with other function arguments, designed to avoid bad practices such as deep nested code and complex code logic expressed in JSON.

Code functions help you to perform memory, string, arithmetic, cryptographic, encoding, logging, debugging, and other useful secondary operations not supported by primary GCScript API functions.

Usage:

Almost all GCScript function arguments supports ISL.

All arguments passing a string value starting with { and terminating with } and containing calls of one or many ISL functions separated with ; will be interpreted as an ISL code block and will be executed.

The entire ISL code block will be replaced by it's results prior executing the GCScript function, key behavior that makes GCScript more flexible and dynamic.

Otherwise, if syntax rules are not met on GCScript function arguments, interpreter will use these strings as string values instead of ISL executable code.

ISL syntax is a subset of Javascript syntax. It's a deterministic, non-turing complete language, same as GCScript language itself.

Same definition as Inline Scripting

Type: object

Some operations can require on runtime extra permissions when it arguments are dynamically generated, for example when using inline GCScript macros. If there is a difference between the amount of permissions calculated on preprocessor stage and the actual permissions being requested on runtime, script execution will stop with a critical error. If you are using inline macros and plan to require extra permissions on runtime, declare them here.

No Additional Properties

Type: number

Extra times this permission will be consumed on runtime

Value must be greater or equal to 1

Type: number

Extra times this permission will be consumed on runtime

Value must be greater or equal to 1