Introduction
This guide assumes you already know how to read Solidity code and reason about EVM contracts. The goal is not to re-teach blockchain basics. The goal is to remap your instincts to Aptos.
What changes first
Section titled “What changes first”- Authorization moves from implicit
msg.senderchecks to explicit&signerparameters. - Storage moves from contract-owned slots and mappings to resources and objects in global storage.
- Tokens move from contract-per-asset standards to framework-backed asset standards like Fungible Asset and Digital Asset.
- Frontend flows move from Ethers contract instances to the
@aptos-labs/ts-sdkplus Wallet Adapter.
Events in Move
Section titled “Events in Move”Solidity declares events directly in the contract:
event MessageAdded(address sender, string message, uint256 addedAt);Move treats events as structs annotated with #[event], then emits them with event::emit:
use 0x1::event;use std::string::String;
#[event]struct MessageAdded has drop, store { sender: address, message: String, added_at: u64,}
event::emit(MessageAdded { sender, message, added_at: timestamp::now_seconds(),});What to read next
Section titled “What to read next”If you want the short version first, jump to the cheatsheet.