Misc > QuIXI
Bridge between the Ixian decentralized P2P network and MQTT/REST. Enables encrypted peer-to-peer messaging for IoT devices with post-quantum security (ML-KEM + AES-256 + ChaCha20).
# QuIXI
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
🚀 Quick Start
1. Install .NET 8
QuIXI requires .NET 8 SDK & Runtime.
2. Clone & Build
git clone https://github.com/ixian-platform/Ixian-Core.git
git clone https://github.com/ixian-platform/QuIXI.git
cd QuIXI
dotnet build
3. Configure
Create a file 'ixian.cfg' in the working directory. Example:
apiPort = 8001
mqDriver = mqtt
mqHost = localhost
mqPort = 1883
4. Run
dotnet run --project QuIXI
5. Try the REST API
Add 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"
⚙️ Configuration
QuIXI uses a simple parameterName = parameterValue format.
Each option is on its own line in ixian.cfg file.
General
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 modeaddApiUser- Add 'user:password' credentials (can repeat)externalIp- External IP addressaddPeer- Specify Ixian seed node (can repeat)addTestnetPeer- Seed node in testnet mode (can repeat)
Logging
maxLogSize- Max log file size (MB)maxLogCount- Max number of rotated logslogVerbosity- Logging level
Messaging
mqDriver-mqttorrabbitmqmqHost- Queue hostmqPort- Queue portstreamCapabilities- Supported stream types (Incoming, Outgoing, IPN, Apps, AppProtocols)
Notifications
walletNotify- Execute command when wallet changes
🌐 REST API Reference
All APIs are GET endpoints.
Contacts
/contacts- List current contacts/addContact?address=- Request contact with given Ixian address/acceptContact?address=- Accept contact request/removeContact?address=- Remove a contact
Messaging
/sendChatMessage?address=&message=&channel=address- Ixian cryptographic address of recipientmessage- Text to sendchannel- Chat channel (usually0)
/sendSpixiMessage?address=&type=&data=&channel=address- Recipient addresstype- Message type (Spixi-specific)data- Payloadchannel- 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 addresscount- Number of messages to retrievechannel- Channel ID
📡 Message Queue Topics
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.).
Core Chat & Messaging
Chat- Standard chat messagesMsgTyping- Typing indicator from a contactMsgReceived- Confirmation a message was receivedMsgRead- Confirmation a message was readMsgDelete- Message was deletedMsgReaction- Reaction to a message (emoji, like, etc.)
Contacts & Presence
RequestAdd2- Incoming contact requestAcceptAdd2- Contact request acceptedAcceptAddBot- Bot contact acceptedBotAction- Bot-initiated actionLeaveConfirmed- Bot confirmed contact has leftNick- Nickname update
File Transfers
FileHeader- Metadata for an incoming fileAcceptFile- File transfer acceptedRequestFileData- Request for file chunksFileData- A piece of file contentFileFullyReceived- Entire file transfer completeAvatar- Profile picture / avatar update
Funds & Transactions
RequestFunds- Contact is requesting fundsRequestFundsResponse- Response to a funds requestSentFunds- Outgoing funds sent
Applications & Protocols
AppData- Spixi Mini App DataAppProtocolData- Spixi Mini App Protocol DataAppRequest- App session requestAppRequestAccept- App session acceptedAppRequestReject- App session rejectedAppEndSession- App session terminatedAppRequestError- App session errorGetAppProtocols- Request for supported app protocolsAppProtocols- List of supported app protocols
💡 Example: Decentralized LED on Raspberry Pi
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.
💡 Examples
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.
🌱 Development Branches
- master - Stable, production-ready releases
- development - Active development, may contain unfinished features
For reproducible builds, always use the latest release tag on master.
🤝 Contributing
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
🌍 Community & Links
- Website: www.ixian.io
- Docs: docs.ixian.io
- Discord: discord.gg/pdJNVhv
- Telegram: t.me/ixian_official_ENG
- Bitcointalk: Forum Thread
- GitHub: ixian-platform
📜 License
Licensed under the MIT License.