Hope all are doing well. It’s been a long time and sorry for the delay. I have been working on this app and have some updates. I am near completion of the first 3 milestones. I will start with the changes.
UIKit is used for the chat messages list. Before, I planned to use SwiftUI with LazyVStack, but found out during testing that it is unstable for a chat UI.
Scroll glitches when loading new messages.
Unoptimized - every load calculates its message bubble sizes while rendering.
When loading old messages, the scroll position changes and jumps abruptly.
To fix this, I decided to switch to UIKit components, like UICollectionView with a custom UICollectionViewLayout. This allows for more control over scroll behavior and view caching like CGRect sizes. This change resulted in smooth scrolling even while old messages are syncing.
Before, I planned to use SwiftData, but later found out that it is very limited and buggy https://www.reddit.com/r/iOSProgramming/comments/1l0ybez/considering_abandoning_swiftdata_in_my_production/. Therefore, I researched various options and made the switch to SQLiteData, which is based on GRDB.
With this switch, the database actions are very stable and can be used easily in UIKit, SwiftUI, and custom classes. Also, this change allows for creation of migrations, which allows DB schema changes without risking crashes or data loss.
The app currently parses Markdown for message rendering. Previously, I planned to parse HTML using NSAttributedString, but as per Apple’s official warning, the HTML importer must not be called from a background thread and must run on the main thread. This can block other tasks on the main thread, resulting in a decrease in performance.
I am currently researching alternatives or planning to build a custom parser that converts HTML to NSAttributedStringwithout the need for a browser environment.
When sending messages, I noticed that some messages were duplicated. Upon debugging, I found that when a message is sent to a round, it has a timeout - if the server doesn’t respond within the time limit, the client will try another round.
This was an issue because sometimes the broadcast to the round was successful, but iOS delayed the response going to xxdk, which resulted in a false failure and therefore duplication of the message in the next round.
Currently I have fixed this by setting min rpc timeout to 400ms in custom xxdk client build.
But I am not sure if this is proper fix and therefore researching more and open to feedback.
Some screenshots
You can also find more screenshots by visiting this Proton Drive link.
I can’t wait to get this app into the hands of the community for testing and feedback.
I am currently waiting on some documents, such as Export Compliance Documentation for Encryption, that is required to bring the app to the stores (even Test Flight).
In the meantime, I am:
Doing more testing.
Cleaning up the codebase and writing documentation.
Researching and building a custom HTML-to-NSAttributedString parser for efficient message rendering.
After that, I will make another post requesting a code review.
You can follow my progress on GitHub - thisisommore/haven-app-ios: IOS haven app · GitHub.
]]>Proposed Solution
Develop a third-party browser extension (Chrome + Firefox) that:
Reuses the official KV extension (XXB-2024-003) for primary storage of Haven contacts/identity.
Adds a Ledger bridge (via WebUSB/WebBluetooth) to:
Sign/derive the WOTS+ portion of contacts (via single-seed Sleeve)
Encrypt/backup a minimal contacts list (pubkeys + hashes) or derive an encryption key for the full list, with anti-duplication mechanism + contact list updates from Haven with hardware confirmations
Enable recovery: connect Ledger → unlock → import contacts/identity to a new device.
Simple UX: buttons “Backup ID/Backup Contacts to Ledger” / “Restore from Ledger” with hardware confirmations.
Optional: contact list visualization and deletion in xx.wallet with hardware confirmation.
Local passphrase fallback if no Ledger.
Open source, auditable, limited to “sign only” operations to minimize risks.
Milestones Milestone 1: Design & Proof-of-Concept
Analysis of official KV API + existing Ledger xx app.
Architecture design (WebUSB bridge, WOTS+ derivation via single seed, minimal backup format).
Minimal PoC: extension that lists contacts from KV and signs a hash via Ledger.
Deliverables: Design doc (Figma/Markdown), initial GitHub repo, PoC demo video.
Estimated cost: ??
Milestone 2: Core Implementation + Ledger Bridge
Development of third-party extension (React + JS for UI, Ledger SDK bridge).
Integration: load contacts from KV, encryption/derivation via Ledger, backup/restore flows.
Unit tests + cross-browser (Chrome/Firefox).
Deliverables: Full code, detailed README, automated tests.
Estimated cost: ??
Milestone 3: Security, Testing & Polish
Community (or external) code audit.
Beta testing with users (contact migration, device-loss scenarios).
UI polish, error handling, user documentation.
Deliverables: Audit report, beta version, tutorial.
Estimated cost: ??
Milestone 4: Publication & Final Documentation
Submission to Chrome Web Store + Firefox Add-ons.
Complete docs (how-to backup/restore, compatibility).
Forum announcement + xxDK integration examples.
Deliverables: Store links, forum update post.
Estimated cost: ??
Total Budget
50,000 USD ??
Note:
It would probably be necessary to add a “contact/group to archive” button in Haven.
Could xx.wallet allow a list view of contacts (in a dedicated section to avoid any confusion with the wallet)?
I reasonably believe the foundation could propose co-financing of 50/50 or even 70/30 to Ledger if they wish = new use case for Ledger + xx market cap is still very low.
Motorola is going to create smartphones with GrapheneOS pre-installed. That’s huge news!
Xx is an exceptional project!
I have no doubt about the project’s success.
xx + Haven + Ledger + GrapheneOS = unbeatable combo.
Thanks to the team and validators, you’re fu.king bosses!
]]>NOTE: I apologize to the extremely belated reply on this. We did release the updates necessary in the v0.4 branch:
This turned into a quagmire, which is why it took so long to complete the work. Haven now uses this branch, so integration should be straightforward. Unfortunately I became very ill and we experienced a tragedy that I will not go into here, which delayed review on this further.
In good faith I’ve asked foundation to release funds with no lockup and to see what they can do about prepaying part of the last milestone.
]]>assets/chains/xxnetwork.svg already exists and is optimized, no need to replace.https://xx.subscan.io is a dead link. dropws://localhost:63007 is invalid, drop.wss://xxnetwork-rpc.n.dwellir.com - the ‘.n’ is required so far as I know, but test it and if it isn’t needed then thats ok.logo field under nativeCurrency is unnecessary. It gets picked up as it’s the coin logo.Over all, against upstream, I think the meaningful delta is just something like:
- id: xxnetwork
name: XX Network
nativeCurrency:
coingeckoId: xxcoin
+ blockExplorerUrls:
+ - https://explorer.xx.network
chainspecQrUrl: https://metadata.novasama.io/qr/xxnetwork_specs.png
latestMetadataQrUrl: https://metadata.novasama.io/qr/xxnetwork_metadata_latest.apng
rpcs:
- - wss://rpc.xx.network/
+ - wss://rpc.xx.network
+ - wss://xxnetwork-rpc.n.dwellir.com
If you can shepherd this through the Talisman folks then we will definitely still pay 8000xx (~500 USD as of this writing).
Thanks!
]]>Over the last few years, XX has expanded to multiple trading venues and multiple pairings to support access and price discovery—especially during the period before we had robust bridging and DEX options for wrapped XX. During that phase, we maintained dual listings for XX and WXX to help connect native XX markets with Ethereum-based access and broader DeFi liquidity, while infrastructure matured.
As the ecosystem has matured, it’s become clear that maintaining too many overlapping markets can work against token health by fragmenting liquidity across venues. When liquidity is spread too thin, order books become shallower, spreads widen, and market-making requirements increase, resulting in higher costs without meaningful benefits to the community.
For that reason, the xx Foundation will be consolidating exchange support and ending liquidity support and trading on Biconomy. This decision reflects:
Consistently low organic activity on Biconomy relative to our primary venues
A commitment to deeper liquidity and better price execution where the majority of trading already occurs
Improved capital efficiency, allowing treasury resources to be deployed more effectively
Trading access remains available on our primary venues, including MEXC (XX/USDT), LBANK (XX/USDT), Coinstore(XX/WXX/USDT), and Uniswap (WXX).
We will provide clear timelines for any deposit/withdrawal and trading deadlines on Biconomy.
We’ll share guidance for users who need to move assets ahead of the transition.
xx Foundation is focusing on supporting the venues that deliver the most value, while reducing redundant infrastructure that adds cost and complexity. We’ll continue to evaluate listings using clear criteria, user access, security posture, transparency, cost/benefit, and organic volume, so that exchange coverage stays strong without diluting liquidity. We’re excited about the road ahead as application development accelerates and adoption continues to mature. This consolidation helps ensure we’re building on a more efficient, resilient market foundation.
Onwards!
]]>How do you guys handle this?
Would you recommend sending my funds to NOVA (or another wallet)?
]]>NOTE: Not I, or anyone else from xx network, will try to contact you directly via this forum, Telegram, etc.
There be shifty folks about. Be safe!
Will send an email when I can about our issue, thanks for trying. If you have contact with a developer from XX that can help please have them take a look.
]]>But this is a huge step forward to making Haven accessible to all platforms, desktop and mobile!
]]>Hey everyone! ![]()
Haven v0.4.5 is live at haven.xx.network. This release focuses on connection reliability, easier DM onboarding, and mobile polish.
Haven now screens the network before you connect, so you get online faster and more reliably
First-time setup benefits the most — subsequent logins remember the results and skip straight to connecting
A brief progress overlay keeps you informed while it works in the background
Share your DM contact info as a scannable QR code or a copyable invite string
Others can start a DM with you by scanning the code or pasting the string — no more manually exchanging cryptographic keys
New “Share DM Contact” modal with QR display and copy button
“Start Direct Message” modal now has two tabs: Scan QR Code (camera-based) and Paste Invite
A new connection status indicator in the bottom-left footer replaces the old changelog icon
Color-coded states: gray (starting), amber/pulsing (connecting), green (connected), red (disconnected/failed)
Click the icon when red to reload and reconnect
Version numbers moved to clickable text that opens the changelog
Preflight screening, identity import, and registration readiness now run as one cohesive sequence
Progress bar shows account sync status as you connect
Channel manager creation is now properly awaited, eliminating silent failures
Tapping a message on mobile now reliably selects it and shows the actions menu
Selected messages are visually highlighted while the menu is open
Clicking a message reference in a reply correctly focuses the original message
Taps on links and reply bubbles pass through naturally without triggering selection
Fixed User Info modal crashing for users that don’t share a common Space with you
Notification sound selector menu now renders above sibling elements instead of behind them
Fixed API redirect priority so preflight endpoint is properly accessible
Give it a try at haven.xx.network and let us know what you think!
]]>But you will need to …
Navigate to “Settings”. You will see “account options”, “manage ledger app” and select “Use the Chain Specific Ledger App” and press “Save”
Open the Ledge Live App and connect your ledger device and unlock the device. On the Ledger device, not the Ledger Live app, open the “xx network” app, scroll through the menu options and you should find “Expert mode”, enable “Expert mode”.
Then resume using the Wallet and Ledger device as usual.
If you need further support, please use the appropriate email address found on Contact Us - xx network - Business, Technical Support & Partnerships
]]>message: ”You have 1 extension that needs to be updated with the latest chain properties in order to display the correct information for the chain you are connected to and to use a Ledger device. This update includes chain metadata and chain properties.”
]]>Hey everyone! We just shipped another big update to Haven. This release is focused on overhauling every modal in the app, refreshing the onboarding experience, and making chat conversations easier to follow. Here’s what’s new:
We performed a full audit and refactoring of every modal in the app across multiple phases:
Consistent structure — All modals now share a unified layout with standardized titles, spacing, and close behavior.
Improved responsiveness — Modals no longer get cut off or misaligned on smaller screens.
Cleaner code — The underlying modal system has been refactored for maintainability and easier future development.
The Join, Login, and CodeName Registration flows have been updated for a cleaner, more intuitive experience:
Simplified Join & Login forms — Streamlined layout with clearer input fields and actions.
Updated CodeName Registration — Better layout and usability during the registration process.
Fixed ID selection buttons — Buttons on the identity selection screen can no longer be obscured or hidden.
Haven now has a brand-new landing layout for first-time visitors:
Hero content — A welcoming introduction that clearly explains what Haven is.
Feature cards — Highlights of Haven’s key features at a glance.
Redesigned footer — A new footer with updated links and layout across the app.
More distinguishable replies — Replies are now visually distinct, making it easier to follow threaded conversations at a glance.
External link warning — Clicking an external link in a message now shows a confirmation dialog before navigating away, keeping you safe.
Fixed link clicks — Links in messages that previously weren’t responding to clicks now work properly.
Pinned messages in the channel header are now collapsible and collapsed by default. This saves screen space while keeping pinned content just a tap away. The pinned messages display in the header has also been refreshed.
Toolbar icons fixed — Resolved issues with Quill toolbar icons not displaying correctly.
Emoji fixes — Fixed emoji picker and emoji-related input issues.
Tooltips disabled on mobile — Quill tooltips no longer get in the way on touch devices.
No forced focus — The editor no longer unexpectedly forces you into the text input field.
Button refactoring — Buttons across the entire app have been refactored for consistent styling and behavior.
Hover stickiness fix — Fixed an issue on mobile browsers where elements would stay highlighted after a tap.
Give it a try at https://haven.xx.network
As always, let us know your feedback and report any issues you find. Happy chatting!
]]>Hey everyone! We just shipped one of our biggest updates to Haven yet. This release is focused on making Haven look better, work better on mobile, and be more accessible to everyone. Here’s what’s new:
The mobile UI has been rebuilt from the ground up:
visualViewport API, so the app fills your screen correctly even when the keyboard opens or the browser chrome shows/hides.The Share Space dialog now includes a scannable QR code with the Haven logo. You can also download it as a PNG — great for meetups, events, or printed materials.
We performed a full contrast and typography audit:
https:// and open in new tabs. The link editing toolbar has been completely reworked.On mobile, pinned messages can now be collapsed to a single-line preview to save screen space. Tap to expand when you need the full message. Your preference is remembered per channel.
As always, let us know your feedback and report any issues you find. Happy chatting! ![]()
Hey everyone! We’ve got a fresh batch of updates for Haven — and this one’s a big one! ![]()
Sidebar → Modals Migration Say goodbye to the right sidebar! We’ve moved Space Details, User Details, Contributors, Channel Notifications, Space Settings, and Pinned Messages into sleek modal dialogs. Everything feels more focused, more consistent, and way cleaner. And yes — we took out the trash too
, removing ~1,200 lines of now-redundant sidebar code.
Unread Message Indicators Never miss a beat! The Spaces and Direct Messages icons in the header now light up with unread indicators so you always know where the action is. ![]()
Redesigned Space Settings The Space Settings modal got a fresh coat of paint
— reorganized layout, better labels, and improved readability across the board.
Bug Fixes & Polish
That’s all for this round — enjoy the updates and let us know what you think! ![]()
![]()
Source Code is here …
]]>We’re excited to share the latest improvements to Haven! This update brings new features, enhanced user experience, and important bug fixes based on your feedback.
It is important to note that v0.4.1 of Haven is using xxdk-wasm-0.3.22. I want to specify that because there was a recent “Test Build” which uses xxdk-wasm-0.4.0, but that is strictly for testing.
https://haven.xx.network is deployed from the code base in the GitLab repository GitLab - Haven
With that said …
You can now access comprehensive Space Settings to manage your spaces more effectively:
YourCodename.json) instead of the generic HavenIdentity.json - making it much easier to manage multiple identitiesNote: This update represents 25 commits and changes across multiple core components of the application. We’re continuously working to improve your Haven experience!
Questions or Issues? Please share your feedback in the community forum.
]]>Working on the Talisman Wallet integration (bounty xxB-2025-004).
Chaindata Configuration (100%)
Network metadata implementation
Chain specifications
Asset definitions
Build validation successful
Infrastructure Setup (100%)
RPC endpoint integration: rpc.xx.network, xxnetwork-rpc.n.dwellir.com
Block explorer configuration: explorer.xx.network, xx.subscan.io
Logo assets (SVG, 223KB)
TypeScript definitions
Integration & Testing (30%)
Talisman extension integration layer
Multi-RPC failover logic with exponential backoff and circuit breaker pattern
WebSocket connection handling with resilience: 5s timeout, health monitoring (5s intervals), error classification (retryable vs non-retryable)
Error boundary implementation with structured error handling
Wallet operation flows (signing, balance queries, transactions)
Cross-chain compatibility verification
Wallet generation using sleevage-tools (3 mnemonics: quantum, sleeve, polkadotjs)
Quality Assurance & Deployment (0%)
End-to-end testing suite
Edge case validation
Performance optimization
Final PR preparation
Core chaindata integration complete. Now working on robust RPC infrastructure with production-ready resilience patterns and Talisman-specific wallet operations.
Implemented based on comprehensive testing:
Fast failure detection: 5s timeout (validated in production)
Exponential backoff with jitter for reconnection
Circuit breaker: 5 failed attempts → 60s cooldown
Error classification: retryable (ECONNREFUSED, ETIMEDOUT) vs non-retryable (invalid genesis hash)
Continuous health monitoring
Initial connection: < 1000ms
Reconnection: < 2000ms
Health check: < 500ms
Connection timeout: 5000ms (critical for fast failover)
Using official sleevage-tools (validator-standard):
3 separate mnemonics for different use cases
Encrypted JSON backup with secure password
Battle-tested in production (validator deployment standard)
RPC Endpoints:
wss://rpc.xx.network
wss://xxnetwork-rpc.n.dwellir.com
Additional public RPCs available?
Block Explorers:
https://explorer.xx.network
https://xx.subscan.io
Correct configuration?
Logo:
223KB SVG. OK?
Integration testing and validation across all wallet operations. PR submission after QA completion.
Feedback welcome.
]]>I’m not sure if this is already the case right now (I haven’t tested it yet), but it will be good if Simple Staking is optimized for smartphones too.
]]>Then I tried to connect to the official wallet using that mnemonic here:
Issue: I couldn’t find any way to enter the mnemonic to open the wallet.
What I’m trying to say is that this wallet is a real gas factory (overly complex).
In practice, an average user needs 2 or 3 buttons max when they first arrive.
Here’s what I suggest:
When a user lands on
They should see only 3 options (and nothing else):
Connect via JSON
Connect via Mnemonic
Go to https://sleeve.xx.network/ to create one
All the Network, Governance, Developers, Settings… sections are not relevant until the wallet is actually connected.
Another point:
Why does the official wallet ( xx network portal ) offer to create a Sleeve wallet when https://sleeve.xx.network/ is supposed to be the official way?
In my opinion, you should remove one of the two to avoid confusion.
Ask someone close to you who is not at all into tech/IT to create and open a wallet… you’ll understand immediately.
You really need to guide the user as much as possible and strip the interface down to the bare minimum.
That being said, there is another option:
Your work is really valuable Keith, I’m definitely not trying to criticize just to annoy you. ![]()
Thanks for listening!
]]>Whether mnemonic recovery is possible or not, it should at least be more obvious (clearly indicated in the UI)
The non quantum secure wallet mnemonic phrase (standard wallet mnemonic) is recoverable from the quantum secure wallet mnemonic via the command-line wallet generation tool.
See Releases · xxfoundation/sleeve · GitHub
This could definitely use a docs page! Thanks for pointing it out.
]]>The whole point was to see whether it’s possible to interact with the blockchain without any documentation.
…
Conclusion:
Without a UX improvement, the official wallet should be positioned and marketed as a tool for validators, advanced users, and developers — and not as a general-purpose wallet for everyone. This should be clearly stated.
It literally is stated, but it is stated in the documentation.
… and thank you for your feedback.
]]>The error occurs because Polkadot-JS now expects account backup files in array format [{…}] rather than the older single-object format {…}. The fix is straightforward: wrap your JSON content in square brackets. old way: {"address":"5GrwvaEF...","encoded":"0x...","encoding":{...},"meta":{...}} new way: [{"address":"5GrwvaEF...","encoded":"0x...","encoding":{...},"meta":{...}}] i.e. Add [ at the very beginning of the file Add ] at the very end of the file Save the file]]>
The whole point was to see whether it’s possible to interact with the blockchain without any documentation.
I created a wallet using Sleeve, then imported it (via JSON file) into the official wallet.
Let’s be honest: I still find it very complicated for basically two things:
Also, I tried to access/recover my wallet using the mnemonic phrase (still in the official wallet). I couldn’t find how to do it, and I’m not even sure it’s possible.
Conclusion:
Without a UX improvement, the official wallet should be positioned and marketed as a tool for validators, advanced users, and developers — and not as a general-purpose wallet for everyone. This should be clearly stated.
Whether mnemonic recovery is possible or not, it should at least be more obvious (clearly indicated in the UI)
PS: When I use official wallets from other blockchains, I usually don’t experience this level of difficulty.
People just want something clean, simple and intuitive: click and go
]]>Happy New Year, xx network community! ![]()
As we step into 2026, we wanted to take a moment to reflect on accomplishments of 2025. It was a year of steady progress, meaningful improvements, and continued dedication to our mission of privacy-first communications and blockchain technology.
Across 27 active repositories, our team shipped 300+ commits and nearly 50 releases throughout the year - from major platform updates to new user-facing applications. Here’s the story of what we built together:
We launched hub.xx.network - a central gateway that brings together all xx network applications, documentation, tools, and resources in one convenient place. The hub includes SuperBridge integration, making it easy to move tokens between networks with an intuitive interface. We shipped continuous improvements throughout the year, including UI refinements, card reorganization for better navigation, and token management features. Think of it as your one-stop shop for everything xx network.
Our wallet application was the most actively developed component in 2025, receiving 27 releases that progressed from version 0.147 to version 0.169. The biggest achievement? We successfully integrated 3 years of upstream improvements from the Polkadot.js ecosystem - carefully merging 47 releases while preserving all the unique features that make it perfect for xx network, including our custom staking page, cMix ID display, and validator charts. We also streamlined RPC endpoint management, fixed rendering issues, and delivered regular stability improvements. The result? A modern, professional wallet experience that rivals any in the blockchain space.
Haven, our privacy-preserving messaging platform, received important updates focused on making it faster, more reliable, and more maintainable. We completed a technical migration to Vite (a modern build tool) that significantly improves development speed and app performance. Throughout the year, we fixed message deletion bugs, resolved direct messaging issues, improved channel functionality, and added automatic crash recovery. The app now works better across different browsers (including Firefox-specific fixes) and gracefully handles edge cases.
We expanded the ecosystem with purpose-built applications:
The client SDK - the core technology that powers xx network applications - received 9 releases throughout 2025 (v4.7.6 through v4.8.4). Key improvements included better WebAssembly integration, enhanced health monitoring for distributed deployments, gateway stability fixes, and improved connection state management. These updates make it easier for developers to build reliable applications on xx network.
We made significant investments in WebAssembly support - the technology that enables privacy-preserving applications to run directly in web browsers. This involved:
This means developers can now build privacy-first applications that users can access with just a browser - no downloads or installations required. Privacy technology is becoming truly accessible to everyone.
Behind the scenes, we modernized our core cryptographic libraries while maintaining backward compatibility. This involved updating three core repositories that handle encryption, key management, and blockchain primitives. We migrated to more efficient libraries, improved support for different deployment environments, and enhanced the handling of cryptographic keys. You might not see these changes directly, but they make everything more secure, faster, and more reliable.
We improved the tools that keep the network running smoothly:
We kept our learning resources current with platform improvements:
All documentation sites received dependency updates to stay modern and secure.
Throughout 2025, we significantly optimized our cloud infrastructure operations. By carefully analyzing usage patterns and making strategic adjustments, we reduced operational overhead by approximately one-third while maintaining - and in many cases improving - service quality. These efficiency gains mean more resources can be directed toward development and community growth.
Storage & Monitoring (Q3 2025)
In September, we implemented a major storage optimization initiative that dramatically reduced cloud storage costs. This involved cleaning up obsolete data, implementing smarter lifecycle policies, and archiving historical information more efficiently. We also optimized our monitoring systems early in the year, reducing unnecessary log retention and consolidating metrics without losing visibility into system health.
Compute Infrastructure (Throughout 2025)
We progressively optimized our compute resources through right-sizing, better workload distribution, and strategic capacity planning. Starting in Q2 and continuing through year-end, we achieved sustained reductions in compute costs while maintaining excellent performance.
Database Operations (Throughout 2025)
Database infrastructure received careful attention with gradual optimizations that improved efficiency without impacting reliability.
Sustained Discipline
These weren’t one-time fixes - we maintained cost discipline throughout the year with regular reviews and adjustments. The result? A leaner, more efficient operation that delivers excellent service to the community while being good stewards of resources.
Here’s a snapshot of our 2025 development efforts:
Q1 2025 - Foundation Setting
Q2 2025 - Modernization Push
Q3 2025 - Major Features & Optimization
Q4 2025 - Polish & Releases
All of this work translates into tangible benefits for xx network users:
More Reliable - Stability improvements mean fewer bugs and better performance
Easier to Use - Better interfaces and documentation make the platform more accessible
More Capable - New applications and tools expand what you can do with xx network
Better Supported - Up-to-date documentation helps you get the most from the platform
Future-Ready - Modern technical foundation positions us for continued growth
The work completed in 2025 positions xx network strongly for continued growth:
Solid Technical Foundation: The client SDK modernization, cryptography updates, and WebAssembly improvements provide a reliable, well-tested base for building the next generation of privacy applications.
Web-Ready Platform: With comprehensive WebAssembly support, developers can now create privacy-preserving applications that anyone can access with just a web browser - no special software required.
Modern User Experience: The wallet’s integration of 3 years of Polkadot.js improvements, combined with our unified network hub, provides users with a polished, professional experience that rivals any blockchain platform.
Efficient Operations: Infrastructure optimizations mean more resources available for development, community programs, and ecosystem growth.
Production Proven: Extensive real-world use and 300+ improvements throughout 2025 demonstrate the platform is mature and ready for broader adoption.
Ecosystem Alignment: Staying current with Polkadot and Substrate ecosystems ensures we benefit from innovations across the broader blockchain space while maintaining our privacy-first focus.
None of this would be possible without our incredible community. Whether you’re:
…you’re part of what makes xx network special.
2025 was about building a strong foundation. We focused on:
The result is a mature, battle-tested platform that delivers on its privacy-first promise. With 27 repositories receiving meaningful updates and continuous releases throughout the year, we demonstrated consistent execution and commitment to quality.
Here’s to an even more exciting 2026! We can’t wait to share what’s coming next.
- The xx network team
P.S. We have some additional details from some of our collaborators related to events attended, grants, etc. and we’ll follow-up if necessary, e.g. xxB-2025-002: Sleeve Wallet Single Seed Modification - #6 by m.f
Want to get involved? Visit hub.xx.network to explore the ecosystem, or check out our documentation at learn.xx.network to dive deeper.
]]>FF - polkadot{.js} extension – Get this Extension for 🦊 Firefox (en-US)
Chrome - https://chrome.google.com/webstore/detail/polkadot{js}-extension/mopnmbcafieddcagagdcbnhejhlodfdd
If you insist on using local storage only, then it is possible to do so. To import an account using the Polkadot-JS UI, navigate to settings > account options and click on allow local in-browser account storage in the drop-down menu. Using the Polkadot-JS user interface without a browser extension is not recommended. It is the least secure way of managing your account. It should only be used if all other methods are not feasible:
]]>{"address":"5GrwvaEF...","encoded":"0x...","encoding":{...},"meta":{...}}
new way:
[{"address":"5GrwvaEF...","encoded":"0x...","encoding":{...},"meta":{...}}]
i.e.
Add [ at the very beginning of the file
Add ] at the very end of the file
Save the file
Congratulations on the Single-Seed implementation!
I recently added Polkadot.js backup.json generation to my sleevage-based workflow, which has proven very useful for streamlining validator deployments (no more Node.js/Python dependencies just for backup file creation).
Now that I see your Single-Seed modification extending Sleeve’s capabilities, I think it would make sense to integrate this feature here as well. It would provide users with production-ready, encrypted backups directly from the tool.
I see this as a nice complementary extension to the core wallet generation functionality. It would enhance the convenience of automated wallet generation and increase the overall attractiveness of the wallet for production use.
How do you see this fitting into the project’s scope?
Thanks for your perspective!
]]>I’d like to showcase our continuous work on this here:
Due to our communication during meetings and other calls, we have made direct progress on the initial three milestones (Milestone 0/1/2, equalling 60% of the bounty).
I’d be keen to hear feedback, alongside also confirmation of completion as so why can finalise the final 2 Milestones (Milestone 3 & Audit)
I wish you a good day,
Mf & Evi
]]>[
"6XXxx",
"6XXxx",
"6XXxx"
]
… at a minimum you can modify it like so …
[
{"address":"6XXxx", "meta":{}},
{"address":"6XXxx", "meta":{}},
{"address":"6XXxx", "meta":{}}
]
If you want to specify the account name you can add "name":"Account1" to the meta.
If you want to specify “only this network” you can add "genesisHash":"0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa" to the meta as well …
e.g.
[
{"address":"6XXxx", "meta":{"genesisHash":"0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa", "name":"Account1"}},
{"address":"6XXxx", "meta":{"genesisHash":"0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa", "name":"Account2"}},
{"address":"6XXxx", "meta":{"genesisHash":"0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa", "name":"Account3"}}
]
… but those can also be done via the UI.
Feel free to confirm the hash at Blockchain Explorer
]]>> Username-based identity with public/private key pairs
These are generated and exchanged “offline”, right?
I’d like us to be able to use “Haven-native” identities, but I don’t know how to do it.
This discovery and identity seems to be one of the more annoying problems… It’d be great if we could load Haven identity files.
(That search feature we had in xx Messenger was great, by the way.)
]]>I try to generate a new one but the new file return an error too.
Thank you
]]>build doesn’t work because xxDK is referenced by relative path, not included in repo
Downloading @emoji-mart/[email protected]: 5.39 MB/5.39 MB, done
ENOENT ENOENT: no such file or directory, open ‘../xx/xxdk-wasm/xxdk-wasm-0.4.0.tgz’
WARN GET https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz error (ERR_PNPM_ENAMETOOLONG). Will retry in 1 minute. 1 retries left.
ERR_PNPM_ENAMETOOLONG Failed to add tarball from "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz" to store: ENAMETOOLONG: name too long, open '/home/user/.local/share/pnpm/store/v10/index/83/82fb398ba7d383755b2a8c36395d17095f3c22d5920079e00fd80972026580-@babel+plugin-bugfix-safari-id-destructuring-collision-in-function-expression@1793577'
Can this be improved? I don’t mind downloading xxdk-wasm-0.4.0.tgz from S3, if you can publish and modify the build script to fetch it from the repo path.
]]>I posted a thread on loading Haven identity in Loading Haven identity from somewhere - that would be nice to have (that is, the ability for the “load identity” modal to expose a field to which we can “push” a string (FS path or URL to identity JSON).
Then it’d be up to others to choose where to push from - crypto wallet (I don’t know of any that can push custom strings, but they could be developed), own extension, etc.
]]>I know this opens up some de-anon attack vectors, but users could read disclaimers and decide for themselves. I’d load some identity files this way, others I wouldn’t.
To keep the extension (which has the URL) out of it, I just need the extension to push the URL to this field - “Choose a file or paste a URL” and that’s all.
A more intrusive extension could do more, but even a basic one would be nice.
]]>*.rip → as they say, “you’re here”: https://github.com/hagezi/dns-blocklists/blob/a5e4fb543c467a57e654f2ca29c6208eff1caac1/rpz/spam-tlds-rpz-aggressive.txt#L191
Did you see any progress in the progress bar or was it completely stuck like in the past?
All of those errors are normal and are caused by bad gateways. The fix is to process those much faster and kick them out of the list of gateways the client tries to contact. It should bring the process from upwards of an hr or 2 down to ~3-5 minutes on the high end. If that’s not the case then please let us know what browser and operating system.
]]>I wasn’t able to connect. I loaded an identity and waited for Haven to start. The usual CORS error appeared first.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser. (Reason: CORS request did not succeed). Status code: (null).
And then reg with permissioning failed.
ERROR 2025/12/21 15:00:00 Cmix has failed registration: failed to register with permissioning: sendRegistrationMessage: Unable to contact Identity Server!: failed to send the request: failed to send the API: Post “https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser”: net/http: fetch() failed: TypeError: NetworkError when attempting to fetch resource.
[DEBUG] bindings.LoadCmixWithKV error: LoadCmixWithKV failed: Post “https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser”: net/http: fetch() failed: TypeError: NetworkError when attempting to fetch resource. failed to send the API
After that Haven remained stuck in Securely setting up your codename. This could take a few minutes.
The team has published a test build of the latest Haven release v0.4.0 This one is largely built out to take full advantage of the new haven extension AND fix a bunch of bugs (better identity generation, etc).
Would love your feedback. The MRs are here:
]]>Loosely related, for the Android whiners: Getting Started with the Swift SDK for Android | Swift.org
]]>6YvZ6LUwNN1N6nz2a645zDeXs3XQnFGQLgVRN1J6jqxsT7Lg
]]>