diff --git a/CHANGELOG.md b/CHANGELOG.md
index 18e58c91..85466dc1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## Unreleased
+
+### Changed
+
+- Use PyO3 v0.19.2 [(#64)](https://github.com/kevinheavey/solders/pull/64)
+
 ## [0.19.0] - 2023-07-31
 
 - Add Token Program ID (`solders.token.ID`)
diff --git a/Cargo.lock b/Cargo.lock
index 31d3658b..f62a7df0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2114,15 +2114,6 @@ dependencies = [
  "autocfg",
 ]
 
-[[package]]
-name = "memoffset"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-dependencies = [
- "autocfg",
-]
-
 [[package]]
 name = "memoffset"
 version = "0.9.0"
@@ -2720,14 +2711,14 @@ dependencies = [
 
 [[package]]
 name = "pyo3"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06a3d8e8a46ab2738109347433cb7b96dffda2e4a218b03ef27090238886b147"
+checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
 dependencies = [
  "cfg-if",
  "indoc",
  "libc",
- "memoffset 0.8.0",
+ "memoffset 0.9.0",
  "parking_lot 0.12.1",
  "pyo3-build-config",
  "pyo3-ffi",
@@ -2737,9 +2728,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-asyncio"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3564762e37035cfc486228e10b0528460fa026d681b5763873c693aa0d5c260"
+checksum = "a2cc34c1f907ca090d7add03dc523acdd91f3a4dab12286604951e2f5152edad"
 dependencies = [
  "futures",
  "once_cell",
@@ -2750,9 +2741,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75439f995d07ddfad42b192dfcf3bc66a7ecfd8b4a1f5f6f046aa5c2c5d7677d"
+checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -2760,9 +2751,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "839526a5c07a17ff44823679b68add4a58004de00512a95b6c1c98a6dcac0ee5"
+checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -2770,9 +2761,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd44cf207476c6a9760c4653559be4f206efafb924d3e4cbf2721475fc0d6cc5"
+checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1"
 dependencies = [
  "proc-macro2 1.0.59",
  "pyo3-macros-backend",
@@ -2782,9 +2773,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc1f43d8e30460f36350d18631ccf85ded64c059829208fe680904c65bcd0a4c"
+checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536"
 dependencies = [
  "proc-macro2 1.0.59",
  "quote 1.0.28",
@@ -2793,9 +2784,9 @@ dependencies = [
 
 [[package]]
 name = "pythonize"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a0e1bbcd2a3856284bf4f4ef09ccb1157e9467847792754556f153ea3fe6b42"
+checksum = "8e35b716d430ace57e2d1b4afb51c9e5b7c46d2bce72926e07f9be6a98ced03e"
 dependencies = [
  "pyo3",
  "serde",
diff --git a/Cargo.toml b/Cargo.toml
index 6afd5512..a86fb5e0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -62,7 +62,7 @@ license = "MIT"
 edition = "2021"
 
 [workspace.dependencies]
-pyo3 = { version = "0.18.0", default-features = false }
+pyo3 = { version = "0.19.2", default-features = false }
 solders-macros = { path = "./crates/macros", version = "=0.18.1" }
 solders-traits = { path = "./crates/traits", version = "=0.18.1" }
 solders-traits-core = { path = "./crates/traits-core", version = "=0.18.1" }
@@ -131,7 +131,7 @@ serde_cbor = "^0.11.2"
 derive_more = "0.99.17"
 solana-program-test = "1.16.0"
 solana-banks-client = "1.16.0"
-pythonize = "0.18.0"
+pythonize = "0.19.0"
 bs58 = "0.4.0"
 thiserror = "^1.0.31"
 camelpaste = "0.1.0"
diff --git a/crates/bankrun/Cargo.toml b/crates/bankrun/Cargo.toml
index d6f58cb0..2ae2fa23 100644
--- a/crates/bankrun/Cargo.toml
+++ b/crates/bankrun/Cargo.toml
@@ -29,4 +29,4 @@ solana-program-test = { workspace = true }
 solana-banks-client = { workspace = true }
 tarpc = { version = "0.29.0" }
 toml = "0.7.3"
-pyo3-asyncio = { version = "0.18.0", features = ["tokio-runtime"] }
+pyo3-asyncio = { version = "0.19.0", features = ["tokio-runtime"] }
diff --git a/crates/rpc-requests/src/lib.rs b/crates/rpc-requests/src/lib.rs
index 2d533c27..8082ace2 100644
--- a/crates/rpc-requests/src/lib.rs
+++ b/crates/rpc-requests/src/lib.rs
@@ -2808,9 +2808,7 @@ pub fn batch_to_json(reqs: Vec<Body>) -> String {
 ///     }]
 ///
 #[pyfunction]
-pub fn batch_from_json(raw: &str) -> PyResult<Vec<PyObject>> {
-    let gil = Python::acquire_gil();
-    let py = gil.python();
+pub fn batch_from_json(py: Python<'_>, raw: &str) -> PyResult<Vec<PyObject>> {
     let deser: Vec<Body> = serde_json::from_str(raw).unwrap();
     Ok(deser.into_iter().map(|x| x.into_py(py)).collect())
 }