Skip to content
CCPEDIAby Unity Nodes
Incoming#860Pull requestIndependent (Rume Dominic / O'Rume Dominic Uririe)Security, Assurance & Incident Readiness. RFP 27, Security Monitoring, Auditability and Evidence

Proposal: A ledger record for refused actions (RFP 27, Security Monitoring, Auditability and Evidence)

Opened 27-09-2026 by dominicrumelast activity 4d ago

  1. Incoming49 days so far27-09-2026
  2. Needs Championnot reached
  3. In Reviewnot reached
  4. Ready for Votenot reached
  5. Voting Livenot reached
  6. Approvednot reached
Waiting on
Nobody has picked it up
idle 4.4 days
Funding request
300,000 CC
Champion named in file
Needs Champion
Duration
16 weeks
Organization
Independent (Rume Dominic / O'Rume Dominic Uririe)
RFP or roadmap area
Security, Assurance & Incident Readiness. RFP 27, Security Monitoring, Auditability and Evidence

Development Fund Proposal Submission

Proposal file: rfps/security-assurance-incident-readiness/2026-09-Independent-refusal-evidence-for-canton.md

Applicant

Organization: Individual

Author / Primary Contact: Rume Dominic (O'Rume Dominic Uririe), dominicrume@gmail.com, github.com/dominicrume

Champion: Needs Champion


Proposal Classification

Proposal Type:

  • RFP-aligned proposal
  • Individual initiative

RFP / Roadmap Area: Security, Assurance & Incident Readiness. RFP 27, Security Monitoring, Auditability and Evidence

Label: rfp-27:security-monitoring


Funding & Timeline

Total Funding Request: 300,000 CC

Project Duration: 16 weeks

Budget Allocation:

  • Core Engineering & Audit: 210,000 CC (70%)
  • Ecosystem Adoption & Enablement: 90,000 CC (30%)

Checklist

  • RFP-aligned proposal
  • Champion identified or Needs Champion selected
  • RFP / roadmap alignment identified, if applicable
  • Proposal is within any RFP maximum amount
  • Proposal is within any RFP maximum duration

Summary

This proposal delivers a reusable Daml module that records refused authorisations as contracts, and discloses them to a named auditor party without disclosing the actions that were allowed.

RFP 27 asks for "audit trails, compliance evidence... and how privacy, access controls, and selective disclosure will be handled." On Canton, a failed assertMsg aborts a transaction, leaving no ledger artefact when an authorization check stops an action. What settled is recorded on-ledger; what was refused exists only in local application logs.

This module models refusals as explicit Daml contracts (RejectedAttempt / ChargeRefused), witnessed only by designated auditors.

In response to Foundation guidance that adoption is the primary indicator of success, 30% of the total budget (90,000 CC) is explicitly allocated to adoption and co-integration into production rails—specifically targeting delegated contract automation (e.g. Vacuumlabs Delegated Automation, PR #627 / forum #9084) and deterministic settlement engines.

What already exists, before any funding

  • canton-refusal-record 1.0.0, a Daml package with no dependencies beyond daml-prim and daml-stdlib. A refusal becomes a committed transaction observed exclusively by designated auditor parties.
  • A record format with a written specification and 20 conformance vectors, implemented three times independently in Python, JavaScript and Go, all agreeing.
  • A selective disclosure format that hands over refusals without disclosing accepted transactions.
  • A browser verifier needing no wallet, no install, and no external network connection.
  • 100 Daml test scripts and 30 mutation-tested assertion fences.

Credit

The on-ledger pattern was named RejectedAttempt by Federico_Rodriguez, a Canton Community Tech Partner, on forum.canton.network/t/9114.

Milestones 4

  1. Specification Hardening & Multi-Language Conformance
  2. Reusable Daml Refusal Module & Independent Audit
  3. Adoption & Integration into Two Canton Rails
  4. Production Handover & Ecosystem Adoption Enablement