Software Developer Central


(The development map above is available at đź”—lnd.im/UniversaDevelopmentMap).

Before starting to develop for Universa, most likely you should be already fluent in Universa Main concepts and architecture; so please examine the Smart Contract Designer Central as well.

General information

Available APIs

Java API

Java API can be used from any Java-compatible environment or language (Java 8 or higher is required).

To start using Java API, you can add com.icodici:universa_core:3.14.4 dependency from Universa public Maven repository. See more details at Maven repository page.

If don’t need the full-featured Java API (requiring Java 8 or newer), but you are writing for Android, you may need the minimal library Minicrypto Java library, containing just the basic cryptographic primitives (e.g. to create the key pairs) and barebone operations to access the Crypto Cloud.

Also, see Kotlin APIs, which may provide multiplatform interfaces, including Java.

UMI protocol for Java API

To access the Java API classes from non-Java environments, you can use the UMI Protocol – where UMI stands for “Universa Method Invocation” – in an RPC manner.

Ruby

As an example of binding UMI to other programming languages, the Universa Ruby gem can be used.

Python

Another implementation of UMI access to Universa is in Universa Python Library at  vkovrigin/py-umi. You can install it from Pypi using regular methods like pip install py-umi.

JavaScript

We also have an UMI-based binding for JavaScript, available as NPM module universa-umi. Check out its source at Gitlab.

JavaScript APIs

There are multiple API libraries providing access to Universa functionality from JavaScript code, and multiple legacy APIs (which can be used but it is not recommended):

Legacy (do not use!):

Also, see Kotlin APIs, which may provide multiplatform interfaces, including JavaScript.

Client JavaScript

Client JavaScript is a special Universa utilization mode when some JavaScript scripts are embedded directly into the smart contracts, and later may be executed by the Universa clients.

Kotlin APIs

Kotlin Multiplatform libraries allow developers to use the same interface on multiple platforms, supported by Kotlin Multiplatform infrastructure, such as JVM, JavaScript, native binary (via LLVM). The libraries below can be used for these multiplatform scenarios.

Test environments

Base concepts

Node technical information

Contracts

Extra services