diff --git a/libs/leaflet/map.utils.ts b/libs/leaflet/map.utils.ts
index 155c9732614e1799fc65bc4c0c790494ca0e00b0..3fd852fc532d542c219c798939a2f39556cd6db5 100644
--- a/libs/leaflet/map.utils.ts
+++ b/libs/leaflet/map.utils.ts
@@ -17,44 +17,75 @@ export type LocationTransform = (location: Location) => Location;
 export function baseLayers(): Record<MapBaseLayer, L.LayerGroup> {
   const baseLayers: Record<MapBaseLayer, L.LayerGroup> = {
     // https://maps.arcgis.com/sharing/rest/content/items/33d6280d276d4af89fb66a6ffa7f2072/data
-    [MapBaseLayer.OCEAN]: L.layerGroup([
-      vectorTileLayer(VectorId.OCEAN, {
-        ...OPTIONS,
-        id: MapBaseLayer.OCEAN,
-      }),
-      L.tileLayer(arcUrl('Ocean/World_Ocean_Base'), {
-        ...OPTIONS,
-        id: MapBaseLayer.OCEAN,
-      }),
-    ]),
+    // https://www.arcgis.com/home/item.html?id=33d6280d276d4af89fb66a6ffa7f2072
+    [MapBaseLayer.OCEAN]: L.layerGroup(
+      [
+        vectorTileLayer(VectorId.OCEAN, {
+          ...OPTIONS,
+          id: MapBaseLayer.OCEAN,
+        }),
+        L.tileLayer(arcUrl('Ocean/World_Ocean_Base'), {
+          ...OPTIONS,
+          id: MapBaseLayer.OCEAN,
+        }),
+      ],
+      {
+        attribution: `
+          Esri, GEBCO, NOAA, National Geographic, Garmin,
+          TomTom, Geonames.org, and other contributors
+        `,
+      }
+    ),
 
     // https://maps.arcgis.com/sharing/rest/content/items/e128f7554370429c91ef7c0e260c078a/data
+    // https://www.arcgis.com/home/item.html?id=e128f7554370429c91ef7c0e260c078a
+    //
     [MapBaseLayer.OUTDOOR]: vectorTileLayer(VectorId.OUTDOOR, {
       ...OPTIONS,
+      attribution: `
+        Esri, TomTom, Garmin, FAO, NOAA, USGS, (c) OpenStreetMap contributors,
+        CNES/Airbus DS, InterMap, NASA/METI, NASA/NGS and the GIS User Community
+      `,
       id: MapBaseLayer.OUTDOOR,
     }),
 
     // https://maps.arcgis.com/sharing/rest/content/items/0d17ba68a8f64c278e7e2e7864e1069d/data
-    [MapBaseLayer.SATELLITE]: L.layerGroup([
-      vectorTileLayer(VectorId.SATELLITE, {
-        ...OPTIONS,
-        id: MapBaseLayer.SATELLITE,
-      }),
-      L.tileLayer(arcUrl('World_Imagery'), {
-        ...OPTIONS,
-        id: MapBaseLayer.SATELLITE,
-      }),
-    ]),
+    // https://www.arcgis.com/home/item.html?id=0d17ba68a8f64c278e7e2e7864e1069d
+    [MapBaseLayer.SATELLITE]: L.layerGroup(
+      [
+        vectorTileLayer(VectorId.SATELLITE, {
+          ...OPTIONS,
+          id: MapBaseLayer.SATELLITE,
+        }),
+        L.tileLayer(arcUrl('World_Imagery'), {
+          ...OPTIONS,
+          id: MapBaseLayer.SATELLITE,
+        }),
+      ],
+      {
+        attribution: 'Esri and its users and partners',
+      }
+    ),
 
     // https://maps.arcgis.com/sharing/rest/content/items/22fb75c0fa5a4c88b8ca4c4b8ae5c90b/data
+    // https://www.arcgis.com/home/item.html?id=22fb75c0fa5a4c88b8ca4c4b8ae5c90b
     [MapBaseLayer.STREET]: vectorTileLayer(VectorId.STREET, {
       ...OPTIONS,
+      attribution: `
+        Esri, TomTom, Garmin, FAO, NOAA, USGS, (c) OpenStreetMap contributors,
+        and the GIS User Community
+      `,
       id: MapBaseLayer.STREET,
     }),
 
     // https://maps.arcgis.com/sharing/rest/content/items/8d57f09b9df345e79945f0f3da1d4d0f/data
+    // https://www.arcgis.com/home/item.html?id=8d57f09b9df345e79945f0f3da1d4d0f
     [MapBaseLayer.TOPO]: vectorTileLayer(VectorId.TOPO, {
       ...OPTIONS,
+      attribution: `
+        Esri, TomTom, Garmin, FAO, NOAA, USGS, (c) OpenStreetMap contributors,
+        CNES/Airbus DS, InterMap, NASA/METI, NASA/NGS and the GIS User Community
+      `,
       id: MapBaseLayer.TOPO,
     }),
   };