Inspiration
In Bangladesh, land is most families' biggest asset, and buying it is a gamble. Fake deeds, plots sold twice, seller names that don't match the khatian (record of rights) and broken ownership chains are common. Land disputes make up a large share of the country's civil court backlog. Most buyers can't read old deeds, which mix legal Bangla, old measurement units and handwritten entries. A lawyer's first review is slow and expensive, so many people sign without a real check. I wanted to give every buyer a fast first pass that tells them what looks wrong and exactly what to verify before they pay.
What it does
Dalil turns a stack of land papers into a clear ownership story, a list of red flags and a to-do list, in seconds. 1.Upload. Photograph the deed (dalil), khatian (record of rights), mutation (namjari) papers and older "via" deeds. Nemotron 3 Nano Omni reads each page into structured fields: sellers, buyers, dag and khatian numbers, area, mouza and dates. Every field stays editable, so the buyer can fix anything misread. 2.Rebuild the chain. Dalil links the documents into an ownership ledger, from the recorded owners to today's seller. Only land backed by a valid chain is passed on, so land from a deed that oversold doesn't count. 3.Stamp the red flags beside the deed that caused each one: oSame land sold twice oLand sold before the seller owned it oA seller with no proof of ownership (missing link) oA seller's name that's close to, but not the same as, the recorded owner's oMore land sold than the seller held oNo mutation in the current owner's name oDag or mouza that doesn't match the khatian oA sale you're offered that's bigger than what the seller can prove 4.Review with Nemotron 3 Ultra. Ultra reads the whole case, explains each flag in plain language and raises concerns the rules missed. 5.Tell you what to check. Nemotron 3 Super writes a checklist for the sub-registry and land office, in Bangla or English, with one click to switch. Three sample cases, built from fictional records, show a clean chain, a double sale and a name mismatch. Dalil is a pre-check, not legal advice, and every report says so. How we built it I built Dalil solo. Every model call in it goes through the Nebius Token Factory inference API, and I route each step to the NVIDIA Nemotron model that fits it. Step Model / service
Why this choice
Read page photos Nemotron 3 Nano Omni (nvidia/Nemotron-3-Nano-Omni) via Token Factory Multimodal and fast: one small call per page
Read pasted or typed text Nemotron 3 Nano (nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B) via Token Factory Cheap, quick structured extraction
Review the whole ownership chain Nemotron 3 Ultra (nvidia/Nemotron-3-Ultra-550b-a55b) via Token Factory Heavy reasoning over all documents: explains each flag and finds concerns the rules missed
Write the bilingual checklist Nemotron 3 Super (nvidia/nemotron-3-super-120b-a12b) via Token Factory Structured English + Bangla output tailored to the case
Core red-flag checks Deterministic rules engine (Python) Predictable, tested results; the app still works if a model call fails
Hosting [Nebius Serverless Endpoints via the included Dockerfile / other host]
Public demo for judges
Why this split: the rules decide, and Nemotron explains and reads. Ownership arithmetic has to be exact and repeatable, so a deterministic engine rebuilds the chain and raises the core flags. Nemotron does what rules can't: reading messy photos, explaining risks to a non-lawyer, spotting subtle issues, and writing natural Bangla. If any model call fails, the app still returns the rules-based report with a template checklist, and the "How Dalil checked this" panel shows which model ran each step and how long it took.
Where Token Factory helped: one OpenAI-compatible endpoint served all four Nemotron models, so routing a step to Nano, Super or Ultra is just a model ID, set by an environment variable.
Stack: Python with FastAPI for the backend, a no-build HTML/CSS/JavaScript single-page app for the frontend, Pydantic data models, and a 15-test pytest suite. No database: uploads are processed in memory and not stored.
The UI shows which model handled each step, so judges can see the routing in action.
Challenges, accomplishments and what I learned
Challenges I ran into
•Telling a double sale from a missing link. My first version labelled a seller who had already sold all their land as a "missing link". I fixed it by tracking each seller's earlier sales on every dag, so a second sale of the same land is now flagged as a double sale. •Deciding what someone really owns. The key idea was to pass on only land backed by a valid chain. If a deed sells more than the seller held, the extra is "unbacked" and doesn't count for the buyer. That is how Dalil can tell someone that the seller offering 25 decimals can prove ownership of none of it. •Names that vary between documents. "Md.", "Mohammad" and "Mst." come and go, so Dalil ignores honorifics when matching, but flags near-matches such as Abdur Rahim versus Abdur Rahman, which could be a different person. •A report that hid its own flags. While recording the demo, I found the report panel stuck to the screen on long cases, hiding the lower flags. I fixed the layout so the whole report scrolls. Accomplishments I'm proud of •A complete flow from photos to ownership ledger to red flags to a bilingual checklist. •15 automated tests covering every rule, the three sample cases, model-reply parsing, offline mode and the Ultra → Super path. •The app stays useful even when a model call fails. What I learned •How Bangladeshi land records fit together: khatian, dag, mouza, via deeds and mutation (namjari). •Splitting work between deterministic code and models makes an AI tool easier to trust and test. •Designing for Bangla: Tiro Bangla and Hind Siliguri fonts so both scripts look native.
What's next for Dalil
•Better reading of old and handwritten deeds, tested on more real-world samples (with owners' consent). •A mobile-first version, since most buyers will photograph papers with a phone. •A shareable report a buyer can send to their lawyer or family. •Partnerships with lawyers and land-office help desks, so a flagged report can turn into a booked consultation. •Support for more document types, such as porcha, DCR and land tax receipts.
Built With
- css
- docker
- fastapi
- html
- httpx
- javascript
- nebius-token-factory
- nemotron-3-nano
- nemotron-3-nano-omni
- nemotron-3-super
- nemotron-3-ultra
- nvidia-nemotron
- playwright
- pydantic
- pytest
- python
Log in or sign up for Devpost to join the conversation.