Inspiration Like most developers, we don't enjoy reading regulatory documents. But when the Reserve Bank of India released their 2027 UTI mandate, we couldn't ignore it.

Buried in that document was a simple truth: thousands of banks, thousands of trades, and thousands of hours of manual work.

We asked ourselves: Why does compliance have to be this painful?

What it does Creates RBI-compliant UTIs for banks:

UTI = LEI (20 chars) + Timestamp (14 chars) + Random (8 chars) Example: 5493001KJTIIGC8Y1R1220260222143025a1b2c3d4

How we built it Frontend: Jinja2 + Vanilla JavaScript + CSS3 Backend: FastAPI (User Portals) + Flask (RBI Server) Database: SQLite Infrastructure: Docker + Docker Compose

Challenges we ran into Level 1: CCP-cleared trades → CCIL generates

Level 2: ETP-executed → Platform generates

Level 3: Cross-border → Clearing Member generates

Level 4: Creator role → Bank generates

Level 5: Receiver role → Counterparty provides

Accomplishments we're proud of What started as a 30-page RBI regulatory document became a fully functional peer-to-peer trade compliance system in just one weekend. We're incredibly proud of turning complex legal requirements into something that actually works—and looks good doing it.

The moment that made it all worthwhile came at 2 AM when we finally saw the complete flow in action: Bank A initiated a trade, Bank B saw the request appear in real-time, clicked accept, and the RBI server automatically generated a compliant 52-character UTI using the correct waterfall logic. All three Docker containers talking to each other, all databases synced, both dashboards updating simultaneously. We actually high-fived.

We're especially proud of nailing the RBI waterfall logic—five levels of conditional UTI generation with multiple sub-rules, all implemented in clean, maintainable Python. Getting the order wrong would break compliance, but we got it right on the first try.

The "TemplateNotFound" bug that haunted us for three hours taught us more about Docker than any tutorial could. When we finally realized the issue and fixed it with explicit copy commands, that victory felt better than any feature launch.

We built something beautiful too—purple gradients, glass-morphism cards, smooth animations. Because compliance tools don't have to be ugly. And when we saw both users' dashboards update simultaneously with the same UTI, generated automatically by the rules we coded... we knew this wasn't just another hackathon project. It's something that could actually help real people do real work.

What's next LEI validation via GLEIF API

Bulk generation for multiple trades

Bank pilot before Jan 1, 2027 deadline

Team: [Team Avenir] Built in 24 hours Ready for January 1, 2027

Built With

Share this project:

Updates