The SignX SDK offers developers an easy and secure way to integrate mobile-to-web authentication and transaction signing using the IXO blockchain. It orchestrates interactions between client applications, mobile apps, and servers, abstracting complex blockchain operations into a user-friendly interface.

Overview

The SignX SDK simplifies the complexities of authentication, data handling, and multi-transaction processing by providing:

  • Secure QR-based authentication flows
  • Encrypted data transmission
  • Multi-transaction session management
  • Real-time status updates through polling
  • Cross-platform compatibility

Key Features

Mobile-to-Web Auth

Secure QR code-based authentication with real-time status updates

Secure Data

AES-256-CBC encryption for sensitive data transmission

Multi-Transaction

Dynamic session management for sequential transactions

Real-Time Updates

Long polling mechanisms for live status tracking

Installation

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

Quick Start

Authentication Flow

import { SignX } from "@ixo/signx-sdk";

// Initialize SignX
const signx = new SignX({
  baseUrl: "https://signx.ixo.world",
  chainId: "ixo-5"
});

// Generate login request
const loginRequest = await signx.createLoginRequest({
  callback: "https://app.example.com/callback",
  expires: 300 // 5 minutes
});

// Generate QR code data
const qrData = loginRequest.toQRCode();

// Start polling for auth status
const status = await signx.pollAuthStatus(loginRequest.id);

Secure Data Exchange

// Encrypt sensitive data
const encryptedData = await signx.encryptData({
  type: 'kyc',
  data: userData,
  recipientDid: 'did:ixo:user/123'
});

// Generate QR code for encrypted data
const dataQR = signx.generateDataQR(encryptedData);

Multi-Transaction Processing

// Create transaction session
const session = await signx.createTransactionSession({
  transactions: [tx1, tx2, tx3],
  metadata: {
    title: 'Batch Operation',
    description: 'Process multiple transactions'
  }
});

// Monitor transaction progress
session.onProgress((status) => {
  console.log(`Completed: ${status.completed}/${status.total}`);
});

Error Handling

400
error

Invalid request parameters

401
error

Unauthorized access

408
error

Request timeout

409
error

Transaction conflict

Use Cases

Secure Authentication

Implement QR-based login flows with real-time status updates

Data Exchange

Handle encrypted data transmission in decentralized applications

Transaction Management

Process complex multi-step blockchain transactions

Identity Verification

Secure KYC and identity verification workflows

Best Practices

Follow these guidelines for secure and efficient SignX integration

Security

  • Implement proper error handling
  • Set appropriate request timeouts
  • Validate all user inputs
  • Monitor authentication attempts
  • Implement rate limiting
  • Use secure callback URLs

Performance

  • Handle connection interruptions
  • Implement proper retry logic
  • Cache transaction metadata
  • Monitor session states
  • Optimize polling intervals
  • Handle expired sessions gracefully

Next Steps

Authentication Guide

Learn QR-based authentication

Transaction Guide

Implement multi-transaction flows

Security Guide

Secure your implementation

Integration Guide

Connect with your application

Was this page helpful?