diff --git a/src/dawn/wire/BUILD.gn b/src/dawn/wire/BUILD.gn
index 1fd51cb..e294cdb 100644
--- a/src/dawn/wire/BUILD.gn
+++ b/src/dawn/wire/BUILD.gn
@@ -30,7 +30,7 @@
 import("${dawn_root}/generator/dawn_generator.gni")
 import("${dawn_root}/scripts/dawn_component.gni")
 
-# Public dawn wire headers so they can be publically visible for dependencies of
+# Public dawn wire headers so they can be publicly visible for dependencies of
 # dawn/wire
 source_set("headers") {
   public_deps = [ "${dawn_root}/include/dawn:headers" ]
@@ -151,5 +151,6 @@
   public_deps = [
     ":abseil",
     ":headers",
+    "${dawn_root}/src/dawn/partition_alloc:raw_ptr",
   ]
 }
diff --git a/src/dawn/wire/BufferConsumer.h b/src/dawn/wire/BufferConsumer.h
index 4435505..ab596f6 100644
--- a/src/dawn/wire/BufferConsumer.h
+++ b/src/dawn/wire/BufferConsumer.h
@@ -33,6 +33,7 @@
 #include "dawn/common/Constants.h"
 #include "dawn/common/Math.h"
 #include "dawn/wire/WireResult.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire {
 
@@ -73,7 +74,7 @@
     WireResult Peek(T** data);
 
   private:
-    BufferT* mBuffer;
+    raw_ptr<BufferT, AllowPtrArithmetic> mBuffer;
     size_t mSize;
 };
 
diff --git a/src/dawn/wire/BufferConsumer_impl.h b/src/dawn/wire/BufferConsumer_impl.h
index b1f94ba..fc6bc92 100644
--- a/src/dawn/wire/BufferConsumer_impl.h
+++ b/src/dawn/wire/BufferConsumer_impl.h
@@ -42,7 +42,7 @@
         return WireResult::FatalError;
     }
 
-    *data = reinterpret_cast<T*>(mBuffer);
+    *data = reinterpret_cast<T*>(mBuffer.get());
     return WireResult::Success;
 }
 
@@ -54,7 +54,7 @@
         return WireResult::FatalError;
     }
 
-    *data = reinterpret_cast<T*>(mBuffer);
+    *data = reinterpret_cast<T*>(mBuffer.get());
     mBuffer += kSize;
     mSize -= kSize;
     return WireResult::Success;
@@ -71,7 +71,7 @@
         return WireResult::FatalError;
     }
 
-    *data = reinterpret_cast<T*>(mBuffer);
+    *data = reinterpret_cast<T*>(mBuffer.get());
     mBuffer += *size;
     mSize -= *size;
     return WireResult::Success;
diff --git a/src/dawn/wire/CMakeLists.txt b/src/dawn/wire/CMakeLists.txt
index bf709e0..22c81b8 100644
--- a/src/dawn/wire/CMakeLists.txt
+++ b/src/dawn/wire/CMakeLists.txt
@@ -107,8 +107,14 @@
     "server/ServerShaderModule.cpp"
 )
 target_link_libraries(dawn_wire
-    PUBLIC dawn_headers
-    PRIVATE dawn_common dawn_internal_config absl_flat_hash_map absl_flat_hash_set
+    PUBLIC
+      dawn_headers
+    PRIVATE
+      absl_flat_hash_map
+      absl_flat_hash_set
+      dawn_common
+      dawn_internal_config
+      partition_alloc
 )
 
 install_if_enabled(dawn_wire)
diff --git a/src/dawn/wire/ChunkedCommandSerializer.h b/src/dawn/wire/ChunkedCommandSerializer.h
index 6b4edc6..655bec8 100644
--- a/src/dawn/wire/ChunkedCommandSerializer.h
+++ b/src/dawn/wire/ChunkedCommandSerializer.h
@@ -40,6 +40,7 @@
 #include "dawn/common/Math.h"
 #include "dawn/wire/Wire.h"
 #include "dawn/wire/WireCmd_autogen.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire {
 
@@ -143,7 +144,7 @@
 
     void SerializeChunkedCommand(const char* allocatedBuffer, size_t remainingSize);
 
-    CommandSerializer* mSerializer;
+    raw_ptr<CommandSerializer> mSerializer;
     size_t mMaxAllocationSize;
 };
 
diff --git a/src/dawn/wire/WireDeserializeAllocator.h b/src/dawn/wire/WireDeserializeAllocator.h
index fe7fe83..08e992f 100644
--- a/src/dawn/wire/WireDeserializeAllocator.h
+++ b/src/dawn/wire/WireDeserializeAllocator.h
@@ -31,6 +31,7 @@
 #include <vector>
 
 #include "dawn/wire/WireCmd_autogen.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire {
 // A really really simple implementation of the DeserializeAllocator. It's main feature
@@ -47,7 +48,8 @@
 
   private:
     size_t mRemainingSize = 0;
-    char* mCurrentBuffer = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<char, AllowPtrArithmetic | DanglingUntriaged> mCurrentBuffer = nullptr;
     char mStaticBuffer[2048];
     std::vector<char*> mAllocations;
 };
diff --git a/src/dawn/wire/client/Adapter.h b/src/dawn/wire/client/Adapter.h
index dd88635..b625698 100644
--- a/src/dawn/wire/client/Adapter.h
+++ b/src/dawn/wire/client/Adapter.h
@@ -36,6 +36,7 @@
 #include "dawn/wire/client/LimitsAndFeatures.h"
 #include "dawn/wire/client/ObjectBase.h"
 #include "dawn/wire/client/RequestTracker.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 
@@ -76,7 +77,8 @@
     struct RequestDeviceData {
         WGPURequestDeviceCallback callback = nullptr;
         ObjectId deviceObjectId;
-        void* userdata = nullptr;
+        // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+        raw_ptr<void, DanglingUntriaged> userdata = nullptr;
     };
     RequestTracker<RequestDeviceData> mRequestDeviceRequests;
 };
diff --git a/src/dawn/wire/client/Buffer.cpp b/src/dawn/wire/client/Buffer.cpp
index d5e44c8..4dcf340 100644
--- a/src/dawn/wire/client/Buffer.cpp
+++ b/src/dawn/wire/client/Buffer.cpp
@@ -36,6 +36,7 @@
 #include "dawn/wire/client/Client.h"
 #include "dawn/wire/client/Device.h"
 #include "dawn/wire/client/EventManager.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 namespace {
@@ -98,7 +99,8 @@
     }
 
     WGPUBufferMapCallback mCallback;
-    void* mUserdata;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<void, DanglingUntriaged> mUserdata;
 
     std::optional<WGPUBufferMapAsyncStatus> mStatus;
 
diff --git a/src/dawn/wire/client/Buffer.h b/src/dawn/wire/client/Buffer.h
index f86c918..1c52d57 100644
--- a/src/dawn/wire/client/Buffer.h
+++ b/src/dawn/wire/client/Buffer.h
@@ -37,6 +37,7 @@
 #include "dawn/webgpu.h"
 #include "dawn/wire/WireClient.h"
 #include "dawn/wire/client/ObjectBase.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 
@@ -124,7 +125,8 @@
     std::unique_ptr<MemoryTransferService::WriteHandle> mWriteHandle = nullptr;
     bool mDestructWriteHandleOnUnmap = false;
 
-    void* mMappedData = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<void, DanglingUntriaged> mMappedData = nullptr;
     size_t mMapOffset = 0;
     size_t mMapSize = 0;
 };
diff --git a/src/dawn/wire/client/Client.h b/src/dawn/wire/client/Client.h
index a4a82c1..05ffd10 100644
--- a/src/dawn/wire/client/Client.h
+++ b/src/dawn/wire/client/Client.h
@@ -43,6 +43,7 @@
 #include "dawn/wire/client/ClientBase_autogen.h"
 #include "dawn/wire/client/EventManager.h"
 #include "dawn/wire/client/ObjectStore.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 
@@ -120,7 +121,8 @@
     ChunkedCommandSerializer mSerializer;
     WireDeserializeAllocator mWireCommandAllocator;
     PerObjectType<ObjectStore> mObjectStores;
-    MemoryTransferService* mMemoryTransferService = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<MemoryTransferService, DanglingUntriaged> mMemoryTransferService = nullptr;
     std::unique_ptr<MemoryTransferService> mOwnedMemoryTransferService = nullptr;
     PerObjectType<LinkedList<ObjectBase>> mObjects;
     // Map of instance object handles to a corresponding event manager. Note that for now because we
diff --git a/src/dawn/wire/client/ClientMemoryTransferService_mock.h b/src/dawn/wire/client/ClientMemoryTransferService_mock.h
index 876c83e..ad5a389 100644
--- a/src/dawn/wire/client/ClientMemoryTransferService_mock.h
+++ b/src/dawn/wire/client/ClientMemoryTransferService_mock.h
@@ -32,6 +32,7 @@
 
 #include "dawn/wire/WireClient.h"
 #include "dawn/wire/client/Client.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 
@@ -51,7 +52,7 @@
                                    size_t size) override;
 
       private:
-        MockMemoryTransferService* mService;
+        raw_ptr<MockMemoryTransferService> mService;
     };
 
     class MockWriteHandle : public WriteHandle {
@@ -66,7 +67,7 @@
         void SerializeDataUpdate(void* serializePointer, size_t offset, size_t size) override;
 
       private:
-        MockMemoryTransferService* mService;
+        raw_ptr<MockMemoryTransferService> mService;
     };
 
     MockMemoryTransferService();
diff --git a/src/dawn/wire/client/Device.h b/src/dawn/wire/client/Device.h
index 12aca84..6d17a55 100644
--- a/src/dawn/wire/client/Device.h
+++ b/src/dawn/wire/client/Device.h
@@ -37,6 +37,7 @@
 #include "dawn/wire/client/LimitsAndFeatures.h"
 #include "dawn/wire/client/ObjectBase.h"
 #include "dawn/wire/client/RequestTracker.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 
@@ -90,14 +91,16 @@
     LimitsAndFeatures mLimitsAndFeatures;
     struct ErrorScopeData {
         WGPUErrorCallback callback = nullptr;
-        void* userdata = nullptr;
+        // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+        raw_ptr<void, DanglingUntriaged> userdata = nullptr;
     };
     RequestTracker<ErrorScopeData> mErrorScopes;
 
     struct CreatePipelineAsyncRequest {
         WGPUCreateComputePipelineAsyncCallback createComputePipelineAsyncCallback = nullptr;
         WGPUCreateRenderPipelineAsyncCallback createRenderPipelineAsyncCallback = nullptr;
-        void* userdata = nullptr;
+        // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire:
+        raw_ptr<void, DanglingUntriaged> userdata = nullptr;
         ObjectId pipelineObjectID;
     };
     RequestTracker<CreatePipelineAsyncRequest> mCreatePipelineAsyncRequests;
@@ -106,11 +109,14 @@
     WGPUDeviceLostCallback mDeviceLostCallback = nullptr;
     WGPULoggingCallback mLoggingCallback = nullptr;
     bool mDidRunLostCallback = false;
-    void* mErrorUserdata = nullptr;
-    void* mDeviceLostUserdata = nullptr;
-    void* mLoggingUserdata = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire:
+    raw_ptr<void, DanglingUntriaged> mErrorUserdata = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire:
+    raw_ptr<void, DanglingUntriaged> mDeviceLostUserdata = nullptr;
+    raw_ptr<void> mLoggingUserdata = nullptr;
 
-    Queue* mQueue = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire:
+    raw_ptr<Queue, DanglingUntriaged> mQueue = nullptr;
 
     std::shared_ptr<bool> mIsAlive;
 };
diff --git a/src/dawn/wire/client/EventManager.h b/src/dawn/wire/client/EventManager.h
index 478c7ac..6577f9e 100644
--- a/src/dawn/wire/client/EventManager.h
+++ b/src/dawn/wire/client/EventManager.h
@@ -39,6 +39,7 @@
 #include "dawn/common/NonCopyable.h"
 #include "dawn/webgpu.h"
 #include "dawn/wire/WireResult.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 
diff --git a/src/dawn/wire/client/Instance.cpp b/src/dawn/wire/client/Instance.cpp
index db7907d..e67fc83 100644
--- a/src/dawn/wire/client/Instance.cpp
+++ b/src/dawn/wire/client/Instance.cpp
@@ -35,6 +35,7 @@
 #include "dawn/common/WGSLFeatureMapping.h"
 #include "dawn/wire/client/Client.h"
 #include "dawn/wire/client/EventManager.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 #include "tint/lang/wgsl/features/language_feature.h"
 #include "tint/lang/wgsl/features/status.h"
 
@@ -80,7 +81,7 @@
         if (mStatus != WGPURequestAdapterStatus_Success && mAdapter != nullptr) {
             // If there was an error, we may need to reclaim the adapter allocation, otherwise the
             // adapter is returned to the user who owns it.
-            mAdapter->GetClient()->Free(mAdapter);
+            mAdapter->GetClient()->Free(mAdapter.get());
             mAdapter = nullptr;
         }
         if (mCallback) {
@@ -89,7 +90,8 @@
     }
 
     WGPURequestAdapterCallback mCallback;
-    void* mUserdata;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<void, DanglingUntriaged> mUserdata;
 
     // Note that the message is optional because we want to return nullptr when it wasn't set
     // instead of a pointer to an empty string.
@@ -100,7 +102,8 @@
     // throughout the duration of a RequestAdapterEvent because the Event essentially takes
     // ownership of it until either an error occurs at which point the Event cleans it up, or it
     // returns the adapter to the user who then takes ownership as the Event goes away.
-    Adapter* mAdapter = nullptr;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<Adapter, DanglingUntriaged> mAdapter = nullptr;
 };
 
 WGPUWGSLFeatureName ToWGPUFeature(tint::wgsl::LanguageFeature f) {
diff --git a/src/dawn/wire/client/ObjectBase.h b/src/dawn/wire/client/ObjectBase.h
index 8c90683..889c956 100644
--- a/src/dawn/wire/client/ObjectBase.h
+++ b/src/dawn/wire/client/ObjectBase.h
@@ -29,6 +29,7 @@
 #define SRC_DAWN_WIRE_CLIENT_OBJECTBASE_H_
 
 #include "dawn/webgpu.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 #include "dawn/common/LinkedList.h"
 #include "dawn/wire/ObjectHandle.h"
@@ -39,7 +40,7 @@
 class Client;
 
 struct ObjectBaseParams {
-    Client* client;
+    raw_ptr<Client> client;
     ObjectHandle handle;
 };
 
@@ -69,7 +70,7 @@
     uint32_t GetRefcount() const { return mRefcount; }
 
   private:
-    Client* const mClient;
+    const raw_ptr<Client> mClient;
     const ObjectHandle mHandle;
     uint32_t mRefcount;
 };
diff --git a/src/dawn/wire/client/Queue.cpp b/src/dawn/wire/client/Queue.cpp
index eee8a00..5337853 100644
--- a/src/dawn/wire/client/Queue.cpp
+++ b/src/dawn/wire/client/Queue.cpp
@@ -32,6 +32,7 @@
 
 #include "dawn/wire/client/Client.h"
 #include "dawn/wire/client/EventManager.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::client {
 namespace {
@@ -60,7 +61,8 @@
     }
 
     WGPUQueueWorkDoneCallback mCallback;
-    void* mUserdata;
+    // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+    raw_ptr<void, DanglingUntriaged> mUserdata;
 
     WGPUQueueWorkDoneStatus mStatus = WGPUQueueWorkDoneStatus_Success;
 };
diff --git a/src/dawn/wire/client/ShaderModule.h b/src/dawn/wire/client/ShaderModule.h
index 65125fe..ea7437e 100644
--- a/src/dawn/wire/client/ShaderModule.h
+++ b/src/dawn/wire/client/ShaderModule.h
@@ -29,6 +29,7 @@
 #define SRC_DAWN_WIRE_CLIENT_SHADERMODULE_H_
 
 #include "dawn/webgpu.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 #include "dawn/wire/client/ObjectBase.h"
 #include "dawn/wire/client/RequestTracker.h"
@@ -51,7 +52,8 @@
 
     struct CompilationInfoRequest {
         WGPUCompilationInfoCallback callback = nullptr;
-        void* userdata = nullptr;
+        // TODO(https://crbug.com/dawn/2345): Investigate `DanglingUntriaged` in dawn/wire.
+        raw_ptr<void, DanglingUntriaged> userdata = nullptr;
     };
     RequestTracker<CompilationInfoRequest> mCompilationInfoRequests;
 };
diff --git a/src/dawn/wire/server/ObjectStorage.h b/src/dawn/wire/server/ObjectStorage.h
index 13b5705..797499a 100644
--- a/src/dawn/wire/server/ObjectStorage.h
+++ b/src/dawn/wire/server/ObjectStorage.h
@@ -37,6 +37,7 @@
 #include "absl/container/flat_hash_set.h"
 #include "dawn/wire/WireCmd_autogen.h"
 #include "dawn/wire/WireServer.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::server {
 
@@ -75,7 +76,7 @@
 };
 
 struct DeviceInfo {
-    Server* server;
+    raw_ptr<Server> server;
     ObjectHandle self;
 };
 
@@ -90,7 +91,7 @@
 template <typename T>
 struct Known {
     ObjectId id;
-    ObjectData<T>* data;
+    raw_ptr<ObjectData<T>> data;
 
     const ObjectData<T>* operator->() const {
         DAWN_ASSERT(data != nullptr);
diff --git a/src/dawn/wire/server/Server.h b/src/dawn/wire/server/Server.h
index 5f21a51..96f1523 100644
--- a/src/dawn/wire/server/Server.h
+++ b/src/dawn/wire/server/Server.h
@@ -33,6 +33,7 @@
 
 #include "dawn/wire/ChunkedCommandSerializer.h"
 #include "dawn/wire/server/ServerBase_autogen.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::server {
 
@@ -64,7 +65,7 @@
 //
 // void Server::MyCallbackHandler(MyUserdata* userdata, Other args) { }
 struct CallbackUserdata {
-    Server* const server;
+    const raw_ptr<Server> server;
     std::weak_ptr<bool> const serverIsAlive;
 
     CallbackUserdata() = delete;
@@ -243,7 +244,7 @@
     ChunkedCommandSerializer mSerializer;
     DawnProcTable mProcs;
     std::unique_ptr<MemoryTransferService> mOwnedMemoryTransferService = nullptr;
-    MemoryTransferService* mMemoryTransferService = nullptr;
+    raw_ptr<MemoryTransferService> mMemoryTransferService = nullptr;
 
     std::shared_ptr<bool> mIsAlive;
 };
diff --git a/src/dawn/wire/server/ServerMemoryTransferService_mock.h b/src/dawn/wire/server/ServerMemoryTransferService_mock.h
index 1519347..e96b64b 100644
--- a/src/dawn/wire/server/ServerMemoryTransferService_mock.h
+++ b/src/dawn/wire/server/ServerMemoryTransferService_mock.h
@@ -32,6 +32,7 @@
 
 #include "dawn/wire/WireServer.h"
 #include "dawn/wire/server/Server.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace dawn::wire::server {
 
@@ -49,7 +50,7 @@
                                  void* serializePointer) override;
 
       private:
-        MockMemoryTransferService* mService;
+        raw_ptr<MockMemoryTransferService> mService;
     };
 
     class MockWriteHandle : public WriteHandle {
@@ -65,7 +66,7 @@
         const uint32_t* GetData() const;
 
       private:
-        MockMemoryTransferService* mService;
+        raw_ptr<MockMemoryTransferService> mService;
     };
 
     MockMemoryTransferService();
