This took some hours to figure out. NEARVM still use [parity_wasm](https://github.com/paritytech/parity-wasm) to validate contract wasm binaries and it does not recognise newer introduced Wasm opcodes for `sign-ext`. And so when you try to call a contract method it says that it fails to deserialize. To mitigate it for now you can use `wasm-opt` (from [binaryen](https://github.com/WebAssembly/binaryen)) with the flag `-signext-lowering` in order to remove the use of those opcodes from the Wasm binary. I've filed an issue here: https://github.com/near/nearcore/issues/8358 And also added a reply to stackoverflow for the same error message: https://stackoverflow.com/questions/71943459/how-can-i-fix-error-happened-while-deserializing-the-module-error/75119084#75119084 And I encountered this as part of my work on the Javascript in Rust smart contracts project I'm working on, which is powering [webassemblymusic.near.page](https://webassemblymusic.near.page). I've managed to reduce the contract size by another 30%. Support it by buying one of the tokens at @mintbase.