JS SDK

This page will specifically guide you through setting up a project using the Züs JS SDK. For detailed API documentation, please refer to the API Reference.

Install Züs JS SDK

The Züs JS SDK is available as a package on NPM for use with a module bundler:

npm install @zerochain/sdk

Initialize the SDK

Before using the SDK, it must be initialized. This process involves loading the required scripts, fetching the appropriate WASM file, and then initializing the WASM.

Adding Required Scripts

Include the following scripts in the <head> of your HTML:

<script
  defer
  src="https://cdn.jsdelivr.net/gh/herumi/[email protected]/browser/bls.js"
/>
<script
  defer
  src="https://cdn.jsdelivr.net/gh/golang/[email protected]/misc/wasm/wasm_exec.js"
/>
circle-info

The WASM relies on the scripts above and requires specific versions to function correctly. Make sure to use the exact versions listed. These may be updated periodically based on the latest WASM v1.x.x release requirements.

Fetching the WASM

There are two WASM file types available, standard and enterprise.

  1. Download the appropriate WASM file(s):

    • Standard WASM is for interacting with a Standard Allocation:

    • Enterprise WASM is for interacting with an Enterprise Allocation:

      • Download enterprise-zcn.wasm from the "Assets" section of any eGoSDK Release herearrow-up-right

  2. Upload your WASM file for wasmBaseUrl config:

    • You can place it in your website’s static assets folder.

      • In this case, set the wasmBaseUrl config to /wasm.

    • Alternatively, you can upload it to a web server or CDN.

      • For example, if wasmBaseUrl is set to https://example.com/wasm, the WASM files should be located at:

        • https://example.com/wasm/enterprise-zcn.wasm for the Enterprise WASM

        • https://example.com/wasm/zcn.wasm for the Standard WASM

  3. Upload the md5worker.js filearrow-up-right for the md5WorkerUrl config:

    • This is optional if you are not using upload features of the SDK. This includes using SDK methods like multiUpload and bulkUpload. {/* DOTODO: update link to multiUpload and bulkUpload */}

    • Place it in your website’s static assets folder:

      • In this case, set the md5WorkerUrl config to md5worker.js.

    • Alternatively, use the CDN URLarrow-up-right for the md5WorkerUrl config. :::warning

circle-info

This is strongly not recommended as it is used only in Zus apps like Vult, Blimp & Chalk and may change in the future, potentially breaking your app.

Fetching WASM with Caching Support

The SDK supports caching the WASM file for faster access. This is not enabled by default, but you can modify the loadWasm config to enable it.

  • Set useCachedWasm to true.

  • Configure cacheConfig based on your WASM file type:

    • For Enterprise WASM, set enterpriseGosdkVersion and enterpriseWasmUrl.

    • For Standard WASM, set standardGosdkVersion and standardWasmUrl.

  • Optionally, set wasmBaseUrl as a fallback. (Reference)

Switching between WASM modes

The SDK provides updateWasmMode for switching between WASM modes.

  • First call updateWasmMode with the desired WASM mode.

  • Then call loadWasm with the proper config.

Next Steps

Now that the SDK is initialized, you can start using its methods in your application. Check out the API Reference.

Example: Logging the WASM version

Last updated