The IXO Spatial Web stack provides multiple integration points for connecting external services, devices, and systems through standardized APIs and SDKs. This guide explains the key integration patterns and provides examples.
Integration Architecture
MultiClient SDK Core SDK for blockchain interactions and digital twin management
Matrix SDK Data storage and messaging integration layer
Oracle SDK AI-powered verification and automation services
JAMBO SDK Authentication and key management
Core Integration Patterns
Device Integration
Connect IoT devices and sensors to the Spatial Web: import { MatrixClient } from '@ixo/matrixclient-sdk'
import { DeviceRegistry } from '@ixo/impactxclient-sdk'
// Initialize Matrix client for device data
const matrix = new MatrixClient ({
baseUrl: 'https://matrix.ixo.world' ,
accessToken: 'YOUR_ACCESS_TOKEN'
})
// Register device on blockchain
const registry = new DeviceRegistry ({
chainId: 'ixo-5' ,
rpcEndpoint: 'https://rpc.ixo.world'
})
// Create device digital twin
const deviceDid = await registry . registerDevice ({
type: 'IoTDevice' ,
manufacturer: 'DeviceCo' ,
model: 'Sensor-2000' ,
controller: ownerDid
})
// Create secure data room
const room = await matrix . createRoom ({
name: `Device ${ deviceDid } ` ,
encryption: true ,
topic: 'Device telemetry'
})
// Stream device data
device . on ( 'data' , async ( telemetry ) => {
await matrix . sendEvent ( room . id , 'device.telemetry' , telemetry )
})
Validate device data using Oracle services: import { OracleClient } from '@ixo/assistant-sdk'
// Initialize Oracle client
const oracle = new OracleClient ({
endpoint: 'https://oracle.ixo.world' ,
apiKey: 'YOUR_API_KEY'
})
// Validate device data
matrix . on ( 'room.event' , async ( event ) => {
if ( event . type === 'device.telemetry' ) {
const validation = await oracle . validate ({
deviceId: deviceDid ,
data: event . content ,
schema: 'telemetry-schema'
})
if ( validation . isValid ) {
// Create verified claim
await registry . createClaim ({
type: 'TelemetryClaim' ,
deviceId: deviceDid ,
data: event . content ,
proof: validation . proof
})
}
}
})
External System Integration
Connect to external registries and databases: import { RegistryClient } from '@ixo/impactxclient-sdk'
// Initialize registry client
const registry = new RegistryClient ({
endpoint: 'https://registry.example.com' ,
credentials: {
apiKey: 'REGISTRY_API_KEY'
}
})
// Sync asset data
async function syncAssets () {
const assets = await registry . getAssets ()
for ( const asset of assets ) {
await createDigitalTwin ({
type: 'ExternalAsset' ,
externalId: asset . id ,
metadata: asset . metadata ,
proof: asset . proof
})
}
}
Integrate with payment and financial systems: import { PaymentClient } from '@ixo/impactxclient-sdk'
// Initialize payment client
const payments = new PaymentClient ({
chainId: 'ixo-5' ,
wallet: 'YOUR_WALLET_ADDRESS'
})
// Process payment for verified claim
async function processPayment ( claim ) {
const payment = await payments . createPayment ({
recipient: claim . beneficiary ,
amount: calculateAmount ( claim ),
currency: 'IXO' ,
memo: `Payment for claim ${ claim . id } `
})
await payments . executePayment ( payment . id )
}
Data Exchange Integration
Create encrypted data sharing channels: import { MatrixClient } from '@ixo/matrixclient-sdk'
// Create data room for partners
const room = await matrix . createRoom ({
name: 'Project Data Room' ,
encryption: true ,
preset: 'private_chat' ,
initialState: [{
type: 'm.room.encryption' ,
state_key: '' ,
content: { algorithm: 'm.megolm.v1.aes-sha2' }
}]
})
// Invite participants
await matrix . inviteToRoom ( room . id , [
'did:ixo:partner1' ,
'did:ixo:partner2'
])
// Share data securely
await matrix . sendEvent ( room . id , 'data.share' , {
type: 'ProjectMetrics' ,
data: encryptedData ,
access: {
roles: [ 'auditor' , 'verifier' ],
expires: '2024-12-31'
}
})
Set up real-time data streams: import { StreamClient } from '@ixo/matrixclient-sdk'
// Create data stream
const stream = new StreamClient ({
room: dataRoom ,
type: 'metrics.stream'
})
// Stream processor
stream . on ( 'data' , async ( data ) => {
// Process incoming data
const processed = await processMetrics ( data )
// Forward to verification oracle
await oracle . verify ({
streamId: stream . id ,
data: processed ,
schema: 'metrics-schema'
})
})
Integration Types
Supported Integrations
IoT Platforms
Device management systems
Sensor networks
Smart meters
Environmental monitors
External Registries
Carbon registries
Asset databases
National registries
Trading platforms
Financial Systems
Payment processors
Banking systems
Trading platforms
Token networks
Data Providers
Weather services
Market data feeds
Geographic data
Social impact data
Best Practices
Use secure communication channels
Implement proper authentication
Encrypt sensitive data
Follow key management best practices
Regular security audits
Validate data integrity
Implement error handling
Use appropriate data formats
Monitor data quality
Regular backups
Next Steps