diff --git a/cmd/keeper/getpayload_wasm.go b/cmd/keeper/getpayload_wasm.go
new file mode 100644
index 0000000000..b912678825
--- /dev/null
+++ b/cmd/keeper/getpayload_wasm.go
@@ -0,0 +1,36 @@
+// Copyright 2026 The go-ethereum Authors
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see .
+
+//go:build wasm
+// +build wasm
+
+package main
+
+import (
+ "unsafe"
+)
+
+//go:wasmimport geth_io len
+func hintLen() uint32
+
+//go:wasmimport geth_io read
+func hintRead(data unsafe.Pointer)
+
+func getInput() []byte {
+ data := make([]byte, hintLen())
+ hintRead(unsafe.Pointer(&data[0]))
+ return data
+}
diff --git a/cmd/keeper/stubs.go b/cmd/keeper/stubs.go
index 04a3bc735b..407a21a145 100644
--- a/cmd/keeper/stubs.go
+++ b/cmd/keeper/stubs.go
@@ -14,7 +14,8 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-//go:build !example && !ziren
+//go:build !example && !ziren && !wasm
+// +build !example,!ziren,!wasm
package main