QuIXI is the quick integration gateway for the Ixian Platform.
Its name is a play on words:
- Quick + IXI - fast integration into Ixian
- Qu (Quantum) - future-ready with post-quantum cryptography
- qu (Queue) - message queue support (MQTT / RabbitMQ)
QuIXI lets you connect anything - devices, applications, AI Agents, or services - into Ixian's secure, decentralized, and presence-based network.
It provides:
- π¨ Message Queue Bridges - Subscribe to Ixian P2P streams via MQTT or RabbitMQ
- π REST API - Send messages, app data, or service commands into Ixian
- π Encryption by Default - All communication is protected by Ixian Core's cryptography
- π¦ Lightweight & Portable - Runs anywhere .NET 8 is supported, from servers to Raspberry Pi
QuIXI requires .NET 8 SDK & Runtime.
git clone https://github.com/ixian-platform/Ixian-Core.git
git clone https://github.com/ixian-platform/QuIXI.git
cd QuIXI
dotnet buildCreate a file 'ixian.cfg' in the working directory. Example:
apiPort = 8001
mqDriver = mqtt
mqHost = localhost
mqPort = 1883dotnet run --project QuIXIAdd a contact:
curl --get \
  --data-urlencode "address=RECIPIENT_IXI_ADDRESS" \
  "http://localhost:8001/addContact"Send a chat message:
curl --get \
  --data-urlencode "channel=0" \
  --data-urlencode "message=Hello Ixian!" \
  --data-urlencode "address=RECIPIENT_IXI_ADDRESS" \
  "http://localhost:8001/sendChatMessage"QuIXI uses a simple parameterName = parameterValue format.
Each option is on its own line in ixian.cfg file.
- apiPort- HTTP/API port (default 8001)
- apiAllowIp- Allow API connections from specific IPs (can repeat)
- apiBind- Bind to specific address (can repeat)
- testnetApiPort- API port in testnet mode
- addApiUser- Add 'user:password' credentials (can repeat)
- externalIp- External IP address
- addPeer- Specify Ixian seed node (can repeat)
- addTestnetPeer- Seed node in testnet mode (can repeat)
- maxLogSize- Max log file size (MB)
- maxLogCount- Max number of rotated logs
- logVerbosity- Logging level
- mqDriver-- mqttor- rabbitmq
- mqHost- Queue host
- mqPort- Queue port
- streamCapabilities- Supported stream types (Incoming, Outgoing, IPN, Apps, AppProtocols)
- walletNotify- Execute command when wallet changes
All APIs are GET endpoints.
- /contacts- List current contacts
- /addContact?address=- Request contact with given Ixian address
- /acceptContact?address=- Accept contact request
- /removeContact?address=- Remove a contact
- 
/sendChatMessage?address=&message=&channel=- address- Ixian cryptographic address of recipient
- message- Text to send
- channel- Chat channel (usually- 0)
 
- 
/sendSpixiMessage?address=&type=&data=&channel=- address- Recipient address
- type- Message type (Spixi-specific)
- data- Payload
- channel- Channel ID
 
- 
/sendAppData?address=&appId=&data=- Send app-specific data identified by appId
 
- Send app-specific data identified by 
- 
/sendAppData?address=&protocolId=&data=- Send protocol-specific data identified by protocolId
 
- Send protocol-specific data identified by 
- 
/getLastMessages?address=&count=&channel=- Fetch recent messages with a given contact
- address- Contact address
- count- Number of messages to retrieve
- channel- Channel ID
 
QuIXI publishes Ixian events and messages into MQTT or RabbitMQ topics. Applications can subscribe to these topics to react to events in real time (IoT triggers, service automation, analytics, etc.).
- Chat- Standard chat messages
- MsgTyping- Typing indicator from a contact
- MsgReceived- Confirmation a message was received
- MsgRead- Confirmation a message was read
- MsgDelete- Message was deleted
- MsgReaction- Reaction to a message (emoji, like, etc.)
- RequestAdd2- Incoming contact request
- AcceptAdd2- Contact request accepted
- AcceptAddBot- Bot contact accepted
- BotAction- Bot-initiated action
- LeaveConfirmed- Bot confirmed contact has left
- Nick- Nickname update
- FileHeader- Metadata for an incoming file
- AcceptFile- File transfer accepted
- RequestFileData- Request for file chunks
- FileData- A piece of file content
- FileFullyReceived- Entire file transfer complete
- Avatar- Profile picture / avatar update
- RequestFunds- Contact is requesting funds
- RequestFundsResponse- Response to a funds request
- SentFunds- Outgoing funds sent
- AppData- Spixi Mini App Data
- AppProtocolData- Spixi Mini App Protocol Data
- AppRequest- App session request
- AppRequestAccept- App session accepted
- AppRequestReject- App session rejected
- AppEndSession- App session terminated
- AppRequestError- App session error
- GetAppProtocols- Request for supported app protocols
- AppProtocols- List of supported app protocols
The repo includes /Examples/RasPi/LED, which contains two bash scripts that turn a Raspberry Pi into a
decentralized LED device.
It:
- Automatically accepts any user that adds it.
- Subscribes to MQTT messages from Ixian.
- Accepts commands ('on', 'off', 'temp', 'help').
- Controls GPIO pins or replies via Ixian chat messages.
Example command flow:
- Send "on" β LED turns on.
- Send "temp" β Device replies with its CPU temperature.
This demonstrates how any IoT device can securely integrate into Ixian via QuIXI.
QuIXI comes with ready-to-run integration examples:
- Decentralized LED - Toggle a Raspberry Pi GPIO LED via Ixian chat
- Camera & Gate Control - Stream images to Spixi Mini Apps & control gates
- LM Studio AI Chatbot - Bridge Ixian chat into a local LLM via LM Studio
See Examples README for details.
- master - Stable, production-ready releases
- development - Active development, may contain unfinished features
For reproducible builds, always use the latest release tag on master.
We welcome contributions and new integration examples.
- Fork this repo
- Create a feature branch ('feature/my-change')
- Commit with clear messages
- Open a Pull Request
- Website: www.ixian.io
- Docs: docs.ixian.io
- Discord: discord.gg/pdJNVhv
- Telegram: t.me/ixian_official_ENG
- Bitcointalk: Forum Thread
- GitHub: ixian-platform
Licensed under the MIT License.