Post
Share your knowledge.
Why use Move instead of Solidity on Sui?
Move enforces strict ownership and resource rules, making assets safer by design. It prevents common bugs like re-entrancy, giving developers more confidence in contract security.
- Sui
- Move
Answers
5Sui chose Move instead of Solidity because Move’s resource model, ownership semantics, and safety guarantees align perfectly with Sui’s object-based architecture and parallel execution engine. Solidity simply wasn’t built for that.
You use Move instead of Solidity on Sui because Move is designed with assets and safety in mind. In Solidity, tokens and assets are just numbers in a contract’s storage, which means a bug like re-entrancy or a missing check can easily cause losses. Move, on the other hand, treats assets as first-class resources with strict ownership rules: they can’t be copied, accidentally dropped, or transferred without permission. This means you don’t have to manually defend against common bugs like double-spending or dangling references—the language prevents them at the type level.
For example, in Solidity you might just update a balance mapping:
mapping(address => uint) balances;
function transfer(address to, uint amount) public {
require(balances[msg.sender] >= amount, "Not enough balance");
balances[msg.sender] -= amount;
balances[to] += amount;
}
In Move, you model the token as a resource, so it can’t be duplicated:
struct Coin has key {
id: UID,
value: u64,
}
public entry fun transfer(coin: Coin, recipient: address) {
transfer::transfer(coin, recipient); // ownership moves, no double spend
}
This ownership model makes reasoning about assets much clearer and enforces security at compile time rather than relying on runtime checks. If you’re building financial apps, games, or NFTs, Move gives you built-in guarantees that reduce the attack surface compared to Solidity.
Do you know the answer?
Please log in and share it.
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
- How to Maximize Profit Holding SUI: Sui Staking vs Liquid Staking616
- Why does BCS require exact field order for deserialization when Move structs have named fields?65
- Multiple Source Verification Errors" in Sui Move Module Publications - Automated Error Resolution55
- Sui Move Error - Unable to process transaction No valid gas coins found for the transaction419
- Sui Transaction Failing: Objects Reserved for Another Transaction410