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 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)
maxLogSize- Max log file size (MB)maxLogCount- Max number of rotated logslogVerbosity- Logging level
mqDriver-mqttorrabbitmqmqHost- Queue hostmqPort- Queue portstreamCapabilities- 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 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
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 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.)
RequestAdd2- Incoming contact requestAcceptAdd2- Contact request acceptedAcceptAddBot- Bot contact acceptedBotAction- Bot-initiated actionLeaveConfirmed- Bot confirmed contact has leftNick- Nickname update
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
RequestFunds- Contact is requesting fundsRequestFundsResponse- Response to a funds requestSentFunds- Outgoing funds sent
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
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.