Proof marks, arsenal marks and date codes

A gun carries two kinds of identifying mark. The maker's name and serial number say who built it and when. The proof marks say what it was tested for, where, and under whose law — and they are the marks that decide what you may safely load. This is a sourced legend of 47 of them, organised by the system that issued them.

Each page gives what the mark looks like, where it sits on the gun, its date range, what it authorises you to say, and — the part other references leave out — what it does not say. Every claim names its source and the class of that source.

German proof marks

1891-1945 · 11 marks

The 1891 proof law made proofing compulsory for every German sporting arm. The marks it prescribed are often the best dating evidence on a German gun, because most German makers’ own records are lost.

British proof marks

1637 to today · 8 marks

Proof is a legal test in Britain, and has been since the Gun Barrel Proof Acts of the 19th century: it is illegal to sell a gun in the UK without valid proof. The stamps are both a certification and an instruction sheet.

Belgian (Liège) proof marks

1672 to today · 6 marks

The Liège proof house is among the oldest in Europe. The marks themselves are straightforward; the inspectors’ letters are not, and no published list is complete.

Italian proof marks and date codes

1945 to today · 7 marks

Italy stamps the year of proof on every gun, which makes Italian arms easier to date from the proof marks than almost anything else in Europe — provided you know which system was in force that year.

Soviet and Russian arsenal marks

1920s to 1991 · 3 marks

The marks on a refurbished Soviet rifle do not mean what most sellers say they mean, starting with the name of the mark itself.

Modern European proof (C.I.P.)

1969 to today · 2 marks

Under the C.I.P. convention, member states recognise each other’s proof marks. The marks are the same test reported in each country’s house style.

Barrel steel markings

1870s to 1930s · 5 marks

A name stamped along the rib of an old double is an advertisement for the barrel material. Read correctly it gives you the era and the grade. Read carelessly it tells you a hundred-year-old barrel is certified safe, which is not what it says.

Export, import and country-of-origin stamps

1890s to today · 5 marks

These are the marks most often mistaken for proof marks. They record a border crossing, not a test.

On marks that are not here. This is the one topic where the confident answer does more harm than none: a reader acts on it with a live firearm in their hands. So this legend only contains marks that can be sourced, and each page states plainly where the sources disagree or give up.

That leaves real gaps, and they are gaps in the published record rather than in this page. An inspector who struck thousands of Italian Carcanos in the First World War is identified by his initials and nothing else; the Belgian proof house's inspector lists were never published and the one circulating list is described by its own compiler as uncertain; the Waffenamt number-to-factory tables in circulation disagree with each other. Where a mark on your gun matches none of the above, the honest answer is that the published sources do not explain it — and that is a more useful answer than an invented one.

Not sure which mark you have? Photograph the stamp straight on, in daylight, with something for scale, and look first at these three clues: the letters or device at the centre of the stamp, whether anything sits above them, and whether the stamp is enclosed in a circle, an oval or a box. Those three features separate the German, British, Belgian and Italian systems before you need any table at all.

How current is this? The 47 entries were compiled and their sources last checked on 2026-10-14. Proof marks themselves do not change — a crown struck in 1912 is the same crown today — but the reference material around them does: date-code tables get extended, inspector attributions get revised, and one of the lists cited here is described by its own compiler as uncertain. Every page carries the date its sources were read.