The IXO MultiClient SDK provides a unified interface for building Spatial Web client applications that leverage interchain networks, decentralized data matrix storage, and AI-powered oracles for verifiable digital twins.

Key Features

Cognitive Digital Twins

Operate digital domains of real-world systems

Interchain Networks

Connects IXO Protocol networks with most other blockchains

Matrix Data Nodes

Encrypts data in sovereign decentralised stores, with secure messaging

AI Oracles

Provide intelligent automations, data verification, with agents and causal AI services

Installation

npm install @ixo/impactxclient-sdk
# or
yarn add @ixo/impactxclient-sdk

Quick Start

Matrix Client

Oracle Integration

Authentication

SignX Integration

SignX provides secure authentication and key management for Spatial Web applications.

The Spatial Web Stack

Core Components

Blockchain Modules

import { cosmos } from "@ixo/impactxclient-sdk";

// Bank module
const bankMsg = cosmos.bank.v1beta1.MsgSend.fromPartial({/*...*/});

// Staking module
const stakingMsg = cosmos.staking.v1beta1.MsgDelegate.fromPartial({/*...*/});

// Gov module
const govMsg = cosmos.gov.v1beta1.MsgSubmitProposal.fromPartial({/*...*/});

Smart Contract Integration

Contract Deployment

import { cosmwasm, customQueries } from "@ixo/impactxclient-sdk";

// Get contract code
const codes = customQueries.contract.getContractCodes("devnet", "ixo");
const code = codes.find(c => c.name === "ixo1155");

// Instantiate contract
const instantiateMsg = {
  typeUrl: "/cosmwasm.wasm.v1.MsgInstantiateContract",
  value: cosmwasm.wasm.v1.MsgInstantiateContract.fromPartial({
    sender: myAddress,
    admin: myAddress,
    codeId: code.code,
    label: `${myAddress}-contract-${code.code}`,
    msg: new TextEncoder().encode(JSON.stringify({
      minter: myAddress
    })),
    funds: [{
      denom: "uixo",
      amount: "1"
    }]
  })
};

Contract Interaction

// Execute contract message
const executeMsg = {
  typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract",
  value: cosmwasm.wasm.v1.MsgExecuteContract.fromPartial({
    sender: myAddress,
    contract: contractAddress,
    msg: new TextEncoder().encode(JSON.stringify({
      batch_mint: {
        to: recipient,
        batch: [[tokenId, "1000", "uri"]]
      }
    })),
    funds: [{
      denom: "uixo",
      amount: "1"
    }]
  })
};

Error Handling

400
error

Invalid message format or parameters

401
error

Unauthorized - check wallet connection

500
error

Blockchain node error

Best Practices

Follow these guidelines for robust application development

Security

  • Validate all user inputs

  • Use secure key management

  • Implement proper error handling

  • Monitor transaction status

Performance

  • Batch transactions when possible

  • Implement proper caching

  • Handle offline scenarios

  • Monitor gas usage

Next Steps

Components Guide

Learn about IXO Spatial Web components

Smart Contracts Guide

Deploy smart contracts

Query Guide

Using GraphQL to query the Blocksync indexing database