Skip to content

Latest commit

 

History

History
11 lines (6 loc) · 695 Bytes

File metadata and controls

11 lines (6 loc) · 695 Bytes

Custom Instruction Data

Let's take a look at how to pass our own custom instruction data to a program. This data must be serialized to Berkeley Packet Filter (BPF) format - which is what the Solana runtime supports for serialized data.

BPF is exactly why we use cargo build-sbf to build Solana programs in Rust. For instructions sent over RPC it's no different. We'll use a library called borsh on both client and program side.


For native, we need to add borsh and borsh-derive to Cargo.toml so we can mark a struct as serializable to/from BPF format.

For Anchor, you'll see that they've made it quite easy (as in, they do all of the serializing for you).