diff --git a/cmd/utils/diskusage.go b/cmd/utils/diskusage.go
index 0e88f91944..8174236ab7 100644
--- a/cmd/utils/diskusage.go
+++ b/cmd/utils/diskusage.go
@@ -14,8 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with go-ethereum. If not, see .
-//go:build !windows && !openbsd
-// +build !windows,!openbsd
+//go:build !windows && !openbsd && !wasip1
+// +build !windows,!openbsd,!wasip1
package utils
diff --git a/crypto/kzg4844/kzg4844_ckzg_cgo.go b/crypto/kzg4844/kzg4844_ckzg_cgo.go
index 11bc451b58..dce592b444 100644
--- a/crypto/kzg4844/kzg4844_ckzg_cgo.go
+++ b/crypto/kzg4844/kzg4844_ckzg_cgo.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-//go:build ckzg && !nacl && !js && cgo && !gofuzz
+//go:build ckzg && !nacl && !js && !wasip1 && cgo && !gofuzz
package kzg4844
diff --git a/crypto/kzg4844/kzg4844_ckzg_nocgo.go b/crypto/kzg4844/kzg4844_ckzg_nocgo.go
index 70a78e80d1..0662b2632f 100644
--- a/crypto/kzg4844/kzg4844_ckzg_nocgo.go
+++ b/crypto/kzg4844/kzg4844_ckzg_nocgo.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-//go:build !ckzg || nacl || js || !cgo || gofuzz
+//go:build !ckzg || nacl || js || wasip1 || !cgo || gofuzz
package kzg4844
diff --git a/crypto/signature_cgo.go b/crypto/signature_cgo.go
index 87289253c0..5c7810c14c 100644
--- a/crypto/signature_cgo.go
+++ b/crypto/signature_cgo.go
@@ -14,8 +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 !nacl && !js && cgo && !gofuzz
-// +build !nacl,!js,cgo,!gofuzz
+//go:build !nacl && !js && !wasip1 && cgo && !gofuzz
+// +build !nacl,!js,!wasip1,cgo,!gofuzz
package crypto
diff --git a/crypto/signature_nocgo.go b/crypto/signature_nocgo.go
index 16a785a186..2d35b49403 100644
--- a/crypto/signature_nocgo.go
+++ b/crypto/signature_nocgo.go
@@ -14,8 +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 nacl || js || !cgo || gofuzz
-// +build nacl js !cgo gofuzz
+//go:build nacl || js || wasip1 || !cgo || gofuzz
+// +build nacl js wasip1 !cgo gofuzz
package crypto
diff --git a/ethdb/leveldb/leveldb.go b/ethdb/leveldb/leveldb.go
index f18503c941..1d88ed460b 100644
--- a/ethdb/leveldb/leveldb.go
+++ b/ethdb/leveldb/leveldb.go
@@ -14,8 +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 !js
-// +build !js
+//go:build !js && !wasip1
+// +build !js,!wasip1
// Package leveldb implements the key-value database layer based on LevelDB.
package leveldb
diff --git a/metrics/cpu_disabled.go b/metrics/cpu_disabled.go
index 025d97aeb3..8404b0edd4 100644
--- a/metrics/cpu_disabled.go
+++ b/metrics/cpu_disabled.go
@@ -14,8 +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 ios || js
-// +build ios js
+//go:build ios || js || wasip1
+// +build ios js wasip1
package metrics
diff --git a/metrics/cpu_enabled.go b/metrics/cpu_enabled.go
index 2359028a21..838c32fad8 100644
--- a/metrics/cpu_enabled.go
+++ b/metrics/cpu_enabled.go
@@ -14,8 +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 !ios && !js
-// +build !ios,!js
+//go:build !ios && !js && !wasip1
+// +build !ios,!js,!wasip1
package metrics
diff --git a/metrics/cputime_unix.go b/metrics/cputime_unix.go
index ad4f812fd2..a44bf80876 100644
--- a/metrics/cputime_unix.go
+++ b/metrics/cputime_unix.go
@@ -14,8 +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 !windows && !js
-// +build !windows,!js
+//go:build !windows && !js && !wasip1
+// +build !windows,!js,!wasip1
package metrics
diff --git a/rpc/ipc_wasip1.go b/rpc/ipc_wasip1.go
new file mode 100644
index 0000000000..2608e29222
--- /dev/null
+++ b/rpc/ipc_wasip1.go
@@ -0,0 +1,38 @@
+// Copyright 2018 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 wasip1
+// +build wasip1
+
+package rpc
+
+import (
+ "context"
+ "errors"
+ "net"
+)
+
+var errNotSupported = errors.New("rpc: not supported")
+
+// ipcListen will create a named pipe on the given endpoint.
+func ipcListen(endpoint string) (net.Listener, error) {
+ return nil, errNotSupported
+}
+
+// newIPCConnection will connect to a named pipe with the given endpoint as name.
+func newIPCConnection(ctx context.Context, endpoint string) (net.Conn, error) {
+ return nil, errNotSupported
+}