Užpalius juosia gynybinių piliakalnių sistema. Įspūdingiausias Šeimyniškių piliakalnis, ant kurio X-XV a. prie Pilupio ir Piliaus upelių santakos stovėjo Užpalių pilis. Piliakalnis datuojamas I tūkstantmečiu - XV a. Piliakalnyje rasta arbaletinių strėlių antgalių, grublėtos ir žiestos keramikos. Užpaliai minimi 1261 m. Mindaugo dokumente, kuriame nurodomos ordinui užrašomos Sėlių žemės ribos. 1274 metais Livonijos ordinas pastatė Daugpilio tvirtovę iš kurios buvo rengiami žygiai į Lietuvos gilumą. Todėl kartu su kitomis rytų Lietuvos pilimis buvo tvirtinama ir Užpalių pilis, taupusi gynybinių pilių sistemos nuo Naručio ežero Biržų link dalimi. Pilių sistemoje buvo Linkmenų, Sėlos, Utenos, Užpalių, Tauragnų ir kiti įtvirtinimai, kurie gynė Lietuvos žemes nuo Daugpilio kalavijuočių antpuolių. Užpalių pilis strateginiu atžvilgiu buvo viena svarbiausių šio ruožo tvirtovių, todėl jos įtvirtinimams buvo skirta daug dėmesio. Užpalių pilis iki XVII a. turėjo karinį viršininką ir įgulą. Karo atveju viršininkas vesdavo Užpalių bajorus į mūšį, turėjo savo vėliavą. 1398 m. minimas Užpalių pilies viršininkas Astikas (Radvilų giminės pradininkas). 1433 m. vasario pradžioje pilį sudegino Livonijos ordinas, tačiau ji greitai atstatyta, o 1453 m. čia planuota rengti LDK susitikimą dėl sienų su Livonija sureguliavimo. Piliakalnio šlaitų ilgis 90 metrų, plotis 45 metrai. Piliakalnis įrengtas aukštumos kyšulyje, kurį iš šiaurės rytų juosia Piliaus upelis, iš pietvakarių - Pilupis, jų santakoje. Aikštelė trapecinė, 70 m ilgio, 40-19 m pločio. Iš visų pusių aikštelė buvo apjuosta pylimu. Geriausiai išlikęs pietrytiniame aikštelės krašte esantis 4 m aukščio, 28 m pločio pylimas. Už jo iškastas 120 m ilgio, 10 m gylio, 50 m pločio griovys 10 m pločio dugnu. Šiaurės vakarų papėdėje yra 15 m pločio užslinkęs griovys, už kurio supiltas nedidelis pylimas. Pietrytinėje papėdėje yra 10 m pločio kelio liekanos. Šlaitai statūs, 16 m aukščio. Į pietryčius nuo piliakalnio, už griovio, tarp tų pačių upelių slėnių yra pylimais ir grioviais apsuptas papilys kuriame buvo įsikūrusi gyvenvietė.
http://www.utenago.lt/seimyniskiu-piliakalnis-su-papiliu/
Lygamiškio (Geniupio) piliakalnis datuojamas I tūkst. Piliakalnis. Šiaurinėje ir rytinėje papėdėje, 0,5 ha plote buvo gyvenvietė, kurioje rasta brūkšniuotos ir grublėtos keramikos. Ant Lygamiškio piliakalnio stovėjo mitologinis akmuo-Laumės valtis- sakralinis paminklas. Manoma, kad ant jo žinai atlikdavo apeigas. Dabar jis, melioratorių nuritintas ir guli piliakalnio papėdėje.
Užpalių piliakalnis įengtas atskiroje kalvoje. Rytinėje ir šiaurės vakarinėje papėdėse, 1,5 ha plote buvo papėdės gyvenvietė. Piliakalnis datuojamas I tūkst. pradžia.
Kepurkalnis - (Gailiešionių) piliakalnis įrengtas atskiroje kalvoje, 50 m nuo Karčiupio upelio dešiniojo kranto. Piliakalnis apardytas žemdirbystės ir karjero veiklos, apaugęs pušimis. Piliakalnis datuojamas I tūkst.
Žaibiškių 2 piliakalniai įrengti vienas šalia kito dešiniajame Šventosios krante ant atskirų kalvų, netyrinėti, apaugę mišku, datuojami I tūkst. pradžia.
Likunčių piliakalnis yra Pilašiaus ežero rytiniame krante esančioje kalvoje. Pietrytinėje papėdėje, 0,5 ha plote yra gyvenvietės liekanos. Piliakalnis datuojamas I tūkst.
Degesių (Lapkalnis) Piliakalnio aikštelėje rastas 30-40 cm storio kultūrinis sluoksnis su ūkine duobe, brūkšnine keramika, gyvulių kaulais. Anksčiau piliakalnyje buvo randama žmonių kaulų, akmeninių laivinių kovos kirvių dalių. Čia galėjo būti pilkapis, datuojamas I tūkstantmetyje pr. Kr.
Iš rytinės pusės, iki 25 kilometrų spinduliu, prieigas į Užpalių pilį saugojo - du Bikūnų piliakalniai, Armališkių, Ramavidiškių, Zabičiūnų, Šikšnių, Guntaunikų, Lužų piliakalniai, iš pietinės pusės - Daugilio gynybiniai įtvirtinimai, Baltakarčių piliakalnis.