Data snapshot: Feb 24, 2026. Type tracking deployed Feb 18.
24,902 wallets exhibit identical behavior: bridge(s) of ~$18K, complete all one-time quests, skip Connect X and Weekly TVL, hold $0 in vaults. Total volume attributed: $468.8M.
Zero-copy is a deserialization technique that creates data structures by borrowing (not copying!) from the array holding the input, avoiding the expensive memory allocation and processing of traditional deserialization. With zero-copy, we can create accounts larger than the size of the stack or heap.
To enable zero-copy-deserialization, one can pass in the zero_copy argument to the macro as follows:
On Solana, a transaction must specify all accounts required for execution. And because an untrusted client specifies those accounts, a program must responsibly validate all such accounts are what the client claims they are--in addition to any instruction specific access control the program needs to do.
For example, you could imagine easily writing a faulty token program that forgets to check if the signer of a transaction claiming to be the owner of a Token Account actually matches the owner on that account. Furthermore, imagine what might happen if the program expects a Mint account but a malicious user gives a token Account.
To address these problems, Anchor provides several types, traits, and macros. It's easiest to understand by seeing how they're used in an example, but a couple include
source: introduction to programming on solana
cargo build-bpf command to compile your program to a file with the so file extension.solana-keygen new to create and save a solana keypair locally.RPC URL is set to http://localhost:8899
solana config set --url http://localhost:8899solana-test-validator| Verify Github on Galaxy. gid:nypSGYEuE2u4NiaoofLQb5 |
As shown in the diagram above, a program author creates a program, compiles it to an ELF shared object containing BPF bytecode, and uploads it to the Solana cluster with a special deploy transaction. The cluster makes it available to clients via a program ID. The program ID is an address specified when deploying and is used to reference the program in subsequent transactions.
Upon a successful deployment the account that holds the program is marked executable. If the program is marked "final", its account data become permanently immutable. If any changes are required to the finalized program (features, patches, etc...) the new program must be deployed to a new program ID.
If a program is upgradeable, the account that holds the program is marked executable, but it is possible to redeploy a new shared object to the same program ID, provided that the program's upgrade authority signs the transaction.
The Solana command line interface supports deploying programs,
The latest loader serializes the program input parameters as follows (all encoding is little endian):
keys
provisioned throughput
Read Capacity Units (RCU): throughput for reads
| { | |
| // Place your settings in this file to overwrite the default settings | |
| "workbench.settings.editor": "json", | |
| "editor.formatOnSave": false, | |
| "editor.defaultFormatter": "esbenp.prettier-vscode", | |
| "editor.detectIndentation": true, | |
| "editor.fontSize": 18, | |
| "editor.lightbulb.enabled": false, | |
| "editor.parameterHints.enabled": false, | |
| "editor.fontFamily": "'Dank Mono', Menlo, Monaco, 'Courier New', monospace", |