top of page

A Legacy of Law.
A Commitment to Justice.

Serving clients across Delhi, Meerut, Prayagraj and beyond since 1950, with strategic counsel, trusted advocacy, and generations of legal expertise.

Home Banner - Final

Three Generations of Trusted Counsel

Established by Late Shri J.D. Singhal in 1950, Singhal Law Chambers has evolved through three generations while preserving its legacy of integrity, excellence and client-centric representation. Today, these timeless values remain at the heart of our practice.

Clients Served

700+

Years of Experience

75+

Areas of Practice

10+

Forums of Appearance

8+

Practice Areas

Experience-driven Solutions across diverse Areas of Practice

01

Taxation

Read More
02

Civil & Commercial Litigation

Read More
03

Constitutional, Service & Writ Litigation

Read More
04

Criminal Litigation & Apellate Practice

Read More
05

Corporate, Commercial & Insolvency Law

Read More
06

Consumer Protection

Read More
07

Arbitration & Alternative Dispute Resolution

Read More
08

Legal Advisory & Risk Management

Read More

Guided by Vision.
Driven by Values.

Guided by principles of integrity, responsibility, transparency and accessibility, we remain steadfast in our commitment to advancing our clients’ best interests through practical, strategic and effective legal representation.

Select Clients

A selection of organizations we have advised and represented.

bottom of page
console.log("script loaded") (function () { function deepQueryAll(selector, root = document) { let results = [...root.querySelectorAll(selector)]; const all = root.querySelectorAll("*"); all.forEach(el => { if (el.shadowRoot) { results = results.concat(deepQueryAll(selector, el.shadowRoot)); } }); return results; } function scrollToTaxation() { if (window.location.hash !== "#taxation") return false; const h = deepQueryAll("h2").find( el => el.textContent.trim().toLowerCase() === "taxation" ); if (h) { h.scrollIntoView({ behavior: "smooth", block: "start" }); return true; } return false; } function pollForTarget() { let tries = 0; const timer = setInterval(() => { if (scrollToTaxation() || ++tries > 150) { clearInterval(timer); } }, 100); } pollForTarget(); window.addEventListener("hashchange", pollForTarget); })();