diff --git a/build/source_list.bzl b/build/source_list.bzl
index 3a37cb3..1329e37 100644
--- a/build/source_list.bzl
+++ b/build/source_list.bzl
@@ -569,7 +569,6 @@
     "quic/core/crypto/p256_key_exchange.cc",
     "quic/core/crypto/proof_source.cc",
     "quic/core/crypto/proof_source_x509.cc",
-    "quic/core/crypto/proof_verifier.cc",
     "quic/core/crypto/quic_client_session_cache.cc",
     "quic/core/crypto/quic_compressed_certs_cache.cc",
     "quic/core/crypto/quic_crypter.cc",
diff --git a/build/source_list.gni b/build/source_list.gni
index e2457fe..a851de2 100644
--- a/build/source_list.gni
+++ b/build/source_list.gni
@@ -569,7 +569,6 @@
     "src/quiche/quic/core/crypto/p256_key_exchange.cc",
     "src/quiche/quic/core/crypto/proof_source.cc",
     "src/quiche/quic/core/crypto/proof_source_x509.cc",
-    "src/quiche/quic/core/crypto/proof_verifier.cc",
     "src/quiche/quic/core/crypto/quic_client_session_cache.cc",
     "src/quiche/quic/core/crypto/quic_compressed_certs_cache.cc",
     "src/quiche/quic/core/crypto/quic_crypter.cc",
diff --git a/build/source_list.json b/build/source_list.json
index 6cf4e9a..5c9c47b 100644
--- a/build/source_list.json
+++ b/build/source_list.json
@@ -568,7 +568,6 @@
     "quiche/quic/core/crypto/p256_key_exchange.cc",
     "quiche/quic/core/crypto/proof_source.cc",
     "quiche/quic/core/crypto/proof_source_x509.cc",
-    "quiche/quic/core/crypto/proof_verifier.cc",
     "quiche/quic/core/crypto/quic_client_session_cache.cc",
     "quiche/quic/core/crypto/quic_compressed_certs_cache.cc",
     "quiche/quic/core/crypto/quic_crypter.cc",
diff --git a/quiche/quic/core/crypto/proof_verifier.cc b/quiche/quic/core/crypto/proof_verifier.cc
deleted file mode 100644
index bf78a4b..0000000
--- a/quiche/quic/core/crypto/proof_verifier.cc
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) 2026 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "quiche/quic/core/crypto/proof_verifier.h"
-
-#include <memory>
-#include <string>
-#include <utility>
-#include <vector>
-
-#include "absl/strings/string_view.h"
-#include "quiche/quic/core/quic_types.h"
-#include "quiche/common/platform/api/quiche_logging.h"
-
-namespace quic {
-
-QuicAsyncStatus ProofVerifier::VerifyCertChain(
-    const std::string& hostname, uint16_t port,
-    const std::vector<absl::string_view>& certs,
-    const std::string& ocsp_response, const std::string& cert_sct,
-    const ProofVerifyContext* context, std::string* error_details,
-    std::unique_ptr<ProofVerifyDetails>* details, uint8_t* out_alert,
-    std::unique_ptr<ProofVerifierCallback> callback) {
-  // To avoid needing an atomic migration of all quiche consumers to use the new
-  // VerifyCertChain function definition, this shim is provided so that old
-  // ProofVerifier implementations continue to work.
-  //
-  // TODO(b/517611362): Remove this once all ProofVerifier implementations
-  // have stopped implementing the old VerifyCertChain.
-  std::vector<std::string> certs_str;
-  certs_str.reserve(certs.size());
-  for (absl::string_view cert : certs) {
-    certs_str.push_back(std::string(cert));
-  }
-  return VerifyCertChain(hostname, port, certs_str, ocsp_response, cert_sct,
-                         context, error_details, details, out_alert,
-                         std::move(callback));
-}
-
-QuicAsyncStatus ProofVerifier::VerifyCertChain(
-    const std::string&, uint16_t, const std::vector<std::string>&,
-    const std::string&, const std::string&, const ProofVerifyContext*,
-    std::string*, std::unique_ptr<ProofVerifyDetails>*, uint8_t*,
-    std::unique_ptr<ProofVerifierCallback>) {
-  // This function exists only for ProofVerifiers that don't implement the new
-  // VerifyCertChain (that takes a vector of absl::string_views for the certs).
-  // A ProofVerifier needs to implement one of the VerifyCertChain functions
-  // (and it should implement the other one). If it implements neither, it will
-  // end up here.
-  QUICHE_NOTREACHED();
-  return QUIC_FAILURE;
-}
-
-}  // namespace quic
diff --git a/quiche/quic/core/crypto/proof_verifier.h b/quiche/quic/core/crypto/proof_verifier.h
index 15031e5..fb0b4be 100644
--- a/quiche/quic/core/crypto/proof_verifier.h
+++ b/quiche/quic/core/crypto/proof_verifier.h
@@ -105,19 +105,7 @@
       const std::string& ocsp_response, const std::string& cert_sct,
       const ProofVerifyContext* context, std::string* error_details,
       std::unique_ptr<ProofVerifyDetails>* details, uint8_t* out_alert,
-      std::unique_ptr<ProofVerifierCallback> callback);
-
-  // Deprecated: Same as VerifyCertChain above, but |certs| contains
-  // std::strings instead of absl::string_views.
-  //
-  // TODO(b/517611362): Remove this once all ProofVerifier implementations
-  // have migrated to the new VerifyCertChain.
-  virtual QuicAsyncStatus VerifyCertChain(
-      const std::string& hostname, uint16_t port,
-      const std::vector<std::string>& certs, const std::string& ocsp_response,
-      const std::string& cert_sct, const ProofVerifyContext* context,
-      std::string* error_details, std::unique_ptr<ProofVerifyDetails>* details,
-      uint8_t* out_alert, std::unique_ptr<ProofVerifierCallback> callback);
+      std::unique_ptr<ProofVerifierCallback> callback) = 0;
 
   // Returns a ProofVerifyContext instance which can be use for subsequent
   // verifications. Applications may chose create a different context and
