[2510] Grant Proposal - Self Sovereign Identity (SSI) sandbox rootstock integration, maturity and alpha launch

Thanks for the detailed completion report, @mrmtech. We verified the contract on Blockscout: source code verified (exact match), Ownable2Step and all audit fixes are in place, and the on-chain setManifestCid transaction checks out. The CoinFabrik audit and remediation work look solid.

A few items that need to be addressed before moving forward to the M3 proposal:

  1. Fuzz and invariant test evidence is missing. The report references test files at contracts/test/foundry/ and a foundry.toml config, but neither exists on the dev branch. The fuzz testing report (docs/identity/DidManifestRegistry-Fuzz-Invariant-Testing-Report.md) is also not in the repo. The post mentions these will be uploaded ā€œalongside the milestone deliverables,ā€ but since this is the completion report, we’d expect them to be available now for verification.

  2. Monitoring setup not verifiable. The Tenderly dashboard requires authentication, so we can’t verify the alerting configuration independently. Could you share a screenshot of the alert rules and history, or make the Tenderly project publicly viewable?

  3. Broken evidence link. One of the audit report links points to drive.google.com/file/d/YOUR_LINK_HERE/view instead of the actual PDF.

The core work looks strong. Please make sure the complete deliverables are available in the repo before submitting the M3 proposal on-chain.

3 Likes

Hi @Tane !
Thanks for taking the time to review our submission in detail. Here our updates.

1 Evidence missing. One commit was missing. It is now pushed, so you can see the fuzz evidence in identity/contracts/audit at dev Ā· Ikabott-MRM/identity Ā· GitHub

  1. Monitoring. Attacched is the last for any event on the contract.

  2. The broken link. here is the correct link

Let us know if anything else is needed.

Regards!

Thanks for the quick turnaround on these items.

Fuzz and invariant test evidence checks out on the dev branch, and the audit report link is fixed. Both items are resolved.

On the monitoring side, the screenshot shows alert activity on the contract, but we were hoping to see the alert rule definitions themselves: which events are monitored, notification channels, and any thresholds configured. Could you share one more screenshot of the Tenderly alert configuration page (not the event log) so we can confirm the setup is comprehensive?

2 Likes

Hi @tane
Sure! Here the alerts that we have configured now, CID set, CID delete, and ownership transfer.
Keep in mind this is our testnet environment, that’s why channels is simply an email. Next milestone is to set up the mainnet, and will configure more appropriate channels.

Regards!

Thanks @mrmtech, all three items are resolved. We’re satisfied with the M2 deliverables and will support the M3 proposal moving forward.

One note for M3: your fuzz report recommends increasing invariant depth to 500 runs x 100 calls before mainnet. We’d expect to see that reflected in the M3 deliverables.

1 Like

@mrmtech, we noticed two M3 proposals submitted on-chain: one at $5,000 and a revised one at $4,000. Could you clarify which is the intended proposal and cancel the other? We’d like to vote but want to make sure we’re supporting the correct one.

1 Like

Hi @mrmtech! We see that two identical proposals were posted on the same day, two and a half hours apart (the first one and the second one). Could you tell us why this happened and which one is the valid one so we can vote?

P.S. @Tane: We see that both proposals propose the execution of USDRIF 4,000 transaction.

You are right, and we somehow got that $5,000 from somewhere else. Apologies. Our and your request stands, though. We need a clarifications on both identical proposals.

Hi team! We made a the proposal, waited for like 4 hours and was not visible, so we assume something happened, and created the second one. Nothing happened for many hours, we asked one of our contacts. Suddenly these morning, both were visible :frowning: We also asked for a way to withdraw one of them, but were told its not possible.

Please use this one.

4 Likes

Thank you so much, @mrmtech for this very through report of the Milestone 2 deliverables. With the completion of M2, it marks a significant step forward for decentralized identity on Rootstock. Following a review of the deliverables and the recent technical discussions with @Tane (thank you for the in-depth review!) exchange on the forum, we have voted in favor of this proposal to support the funding for Milestone 3.

Our reasoning for this support is based on the following:

  • Rigorous Security Standards: The team went well beyond a standard manual audit by incorporating Mythril symbolic execution and Foundry fuzzing. Executing ~59,000 property checks with zero failures demonstrates a level of technical maturity and ā€œabove and beyondā€ due diligence that is critical for an identity registry.

  • Operational Readiness: The implementation of real-time monitoring via Tenderly, specifically for ā€œhigh-riskā€ events like ownership transfers and CID deletions, proves the infrastructure is prepared for production. The transparency in sharing these alert configurations builds strong confidence in the project’s long-term management.

  • Technical Accountability: The dual-write pattern (MySQL and Rootstock) and the outbox retry mechanism show that the architecture is built for real-world reliability, ensuring that blockchain latency does not hinder the end-user experience.

We also fully support the recommendation by @Tane to increase the invariant testing depth to 500 runs and 100 calls for the Mainnet migration. This extra layer of stress testing is a logical requirement given the security stakes of SSI. We look forward to the Mainnet deployment and the upcoming pilot programs!

1 Like

Thank you for delivering such a good report for M2 @mrmtech

Really impressed with the external audit came back with zero critical, high, or medium findings, all recommendations were addressed and verified in a re-audit, your team also went beyond the minimum by adding fuzz testing and live monitoring.

I will vote yes for M3, taking what’s been proven on testnet to mainnet, with production infrastructure and real end-to-end flows. Budget is 4K for 2 months of work which is reasonable given what’s being delivered.

2 Likes

We voted in favor of this proposal to fund Milestone 3, as the proposer has fully complied with the deliverables committed to in Milestone 2 and has adequately addressed the comments made in this thread. We are very pleased to see that, although the first external audit identified only one minor issue and two potential enhancements, you have resolved everything, and this has been verified in the re-audit. We eagerly await the Mainnet launch as a key component of Milestone 3!

Furthermore, we voted against the duplicate proposal, in accordance with the proposer’s clarification regarding which proposal is valid.

1 Like

@mrmtech We are pleased with the delivery of Milestone 2. The team not only fulfilled the stated requirements but also went beyond them by conducting additional testing beyond a standard audit, including fuzz testing, Mythril, and high-volume test scenarios. This gives us greater confidence in the robustness of the system.

Therefore, we are in favor of supporting Milestone 3, as the technical risk has been reduced and we have strong confidence in the team’s execution.

2 Likes

@mrmtech Thank you for successfully completing Milestone 2 deliverables. I have voted FOR your Milestone 3 proposal!

I want to tag @SwaptoX who is a fellow grantee and as part of their next deliverables milestone, will start to plan for an audit. I thought it would be helpful for them to connect with you and exchange learnings. Please don’t hesitate to loop me in as a delegate point of contact if you have questions or need the collective’s assistance!

1 Like

Hi @mrmtech , thanks for the introduction!

I’m also a Rootstock grantee currently working on the SwaptoX aggregator. As part of my upcoming milestone, I’ll be starting the audit planning soon, so I’d really appreciate learning from your experience.

If you’re open to sharing, I’d be particularly interested in:

  • how you approached defining the audit scope (core contracts vs. additional components)

  • what the audit process looked like in practice (iterations, timeline, etc.)

  • whether you had to go through multiple revisions or significant refactoring

  • how you handled findings raised during the audit

  • and any lessons learned or things you would do differently in hindsight

If you have time, I’d really appreciate any insights you can share. Thanks in advance!

1 Like

What a fantastic recomendation, @Axia , since in our opinion, @mrmtech audit was exceptional and we’re sure there were lessons learned/best practices that could help other builders.

Idealy, if there was a fluid way for builders to connect to share best practices, that didn’t require the delegates as intro middle-men, that would be the perfect scenario. How we foster that type of culture would be something to consider.

Hey @DAOstar_gov, one idea that comes to mind is creating a FAQ / Best Practices guide for builders. The responses to be collected on this forum post can be a good starting point. As delegates and contributors, we should take the mindset of running small experiments.

1 Like

@Axia , that is a fabulous idea regarding creating a FAQ/Best Practices guide! We also very supportive of your post you reference here to collect feedback directly from builders. We believe that this approach opens up a more collaborative builder ecosystem, when the Collective and the builders are working together to extend the functionality and utilities of RT.