diff --git a/BUILD.bazel b/BUILD.bazel
index 1a091a4..46ce48f 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -57,6 +57,7 @@
         "//src/main/java/com/google/crypto/tink:public_key_verify",
         "//src/main/java/com/google/crypto/tink:registry",
         "//src/main/java/com/google/crypto/tink:registry_cluster",
+        "//src/main/java/com/google/crypto/tink:registry_configuration",
         "//src/main/java/com/google/crypto/tink:secret_key_access",
         "//src/main/java/com/google/crypto/tink:streaming_aead",
         "//src/main/java/com/google/crypto/tink:tink_json_proto_keyset_format",
@@ -509,6 +510,7 @@
         "//src/main/java/com/google/crypto/tink:public_key_verify-android",
         "//src/main/java/com/google/crypto/tink:registry-android",
         "//src/main/java/com/google/crypto/tink:registry_cluster-android",
+        "//src/main/java/com/google/crypto/tink:registry_configuration-android",
         "//src/main/java/com/google/crypto/tink:secret_key_access-android",
         "//src/main/java/com/google/crypto/tink:streaming_aead-android",
         "//src/main/java/com/google/crypto/tink:tink_json_proto_keyset_format-android",
diff --git a/src/main/java/com/google/crypto/tink/BUILD.bazel b/src/main/java/com/google/crypto/tink/BUILD.bazel
index b175e4b..1e3414b 100644
--- a/src/main/java/com/google/crypto/tink/BUILD.bazel
+++ b/src/main/java/com/google/crypto/tink/BUILD.bazel
@@ -968,3 +968,21 @@
         "//src/main/java/com/google/crypto/tink/subtle:rsa_ssa_pkcs1_verify_jce",
     ],
 )
+
+android_library(
+    name = "registry_configuration-android",
+    srcs = ["RegistryConfiguration.java"],
+    deps = [
+        ":configuration-android",
+        "//src/main/java/com/google/crypto/tink/internal:registry_configuration-android",
+    ],
+)
+
+java_library(
+    name = "registry_configuration",
+    srcs = ["RegistryConfiguration.java"],
+    deps = [
+        ":configuration",
+        "//src/main/java/com/google/crypto/tink/internal:registry_configuration",
+    ],
+)
diff --git a/src/main/java/com/google/crypto/tink/RegistryConfiguration.java b/src/main/java/com/google/crypto/tink/RegistryConfiguration.java
new file mode 100644
index 0000000..feb4803
--- /dev/null
+++ b/src/main/java/com/google/crypto/tink/RegistryConfiguration.java
@@ -0,0 +1,31 @@
+// Copyright 2024 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package com.google.crypto.tink;
+
+import java.security.GeneralSecurityException;
+
+/**
+ * RegistryConfiguration is a proxy Configuration that forwards all calls to the global Registry.
+ */
+public class RegistryConfiguration {
+  private RegistryConfiguration() {}
+
+  /** get returns a Configuration forwarding all calls to the global Registry. */
+  public static Configuration get() throws GeneralSecurityException {
+    return com.google.crypto.tink.internal.RegistryConfiguration.get();
+  }
+}
diff --git a/src/test/java/com/google/crypto/tink/BUILD.bazel b/src/test/java/com/google/crypto/tink/BUILD.bazel
index cd88407..22b5318 100644
--- a/src/test/java/com/google/crypto/tink/BUILD.bazel
+++ b/src/test/java/com/google/crypto/tink/BUILD.bazel
@@ -674,3 +674,15 @@
         "@maven//:junit_junit",
     ],
 )
+
+java_test(
+    name = "RegistryConfigurationTest",
+    size = "small",
+    srcs = ["RegistryConfigurationTest.java"],
+    deps = [
+        "//src/main/java/com/google/crypto/tink:registry_configuration",
+        "//src/main/java/com/google/crypto/tink/internal:registry_configuration",
+        "@maven//:com_google_truth_truth",
+        "@maven//:junit_junit",
+    ],
+)
diff --git a/src/test/java/com/google/crypto/tink/RegistryConfigurationTest.java b/src/test/java/com/google/crypto/tink/RegistryConfigurationTest.java
new file mode 100644
index 0000000..c7e6fee
--- /dev/null
+++ b/src/test/java/com/google/crypto/tink/RegistryConfigurationTest.java
@@ -0,0 +1,32 @@
+// Copyright 2024 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package com.google.crypto.tink;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+@RunWith(JUnit4.class)
+public class RegistryConfigurationTest {
+  @Test
+  public void get_works() throws Exception {
+    assertThat(RegistryConfiguration.get())
+        .isInstanceOf(com.google.crypto.tink.internal.RegistryConfiguration.class);
+  }
+}
