If it blinks, it blonks
Blonk is a robust platform that streamlines multi-signature transaction management through an intuitive Telegram bot interface. By leveraging Dialect's blink protocol, Blonk enables seamless cross-platform transaction creation and management.
Imagine Alice wants to initiate a treasury payment. Instead of navigating complex interfaces, she simply sends a blink to Blonk. The bot guides her through the process, collecting necessary details in a conversational manner. Once all information is gathered, Blonk creates a multi-signature transaction using Squads v3 and notifies all signers in a dedicated group.
Bob and Charlie, other signers in the group, can then review the transaction details and approve or reject with a single click. Once the required signature threshold is met, any group member can execute the transaction. Learn more about the complete flow.
Blonk consists of two main components:
- blonk_bot: A Telegram bot built with Teloxide that handles user interactions
- blonk_api: A backend service powered by Axum that manages transaction logic and state
Our choice of Rust brings several advantages:
- Security: Memory safety guarantees and compile-time checks prevent common vulnerabilities
- Performance: Zero-cost abstractions and minimal runtime overhead
- Reliability: Strong type system and ownership model ensure robust operation
- Future-proof: Growing ecosystem and active community support
Blonk utilizes Squads v3 for multi-signature functionality, a protocol that has undergone multiple successful security audits. This provides a battle-tested foundation for secure transaction management.
The setup process involves configuring both the bot and API components, along with necessary environment variables and database setup. For detailed instructions, please refer to our setup guide.
Currently implemented:
- Basic transaction creation flow
- Multi-signature approval/rejection
- Transaction execution
- Blink protocol support
Stage 1: (UX)
- Improve Transaction Request Message UX (explorer links, signature tracking, status display, reload button)
- Handle loading state for all actions (create, approve, reject, execute)
Stage 2: (Mainnet)
- Handle errors and improve fault tolerance
- Priority fees and CU optimization
Stage 3: (Autonomy)
- Self-management of users and private keys
- Support creation of multisig with groups, changing threshold, adding/removing member
We welcome contributions! Feel free to:
- Fork the repository
- Create a feature branch
- Submit a pull request
Please ensure your code follows our style guidelines and includes appropriate tests.
Built with 💫 by the Blonk team