search-aptos-examples
npx skills add https://github.com/iskysun96/aptos-agent-skills --skill search-aptos-examples
Agent 安装分布
Skill 文档
Search Aptos Examples Skill
Overview
This skill helps you find relevant examples in official Aptos repositories before writing new contracts. Always search examples first to follow established patterns.
Repositories:
aptos-labs/aptos-core/aptos-move/move-examples/â 53+ official Move examples demonstrating best practicesaptos-labs/daily-move/snippets/â 17 curated educational examples covering design patterns, Move 2 features, composable NFTs, and more
Core Workflow
Step 1: Identify What You’re Building
Categorize your contract:
- NFTs/Tokens: NFT collections, digital assets, collectibles
- Fungible Assets: Coins, tokens, currencies
- DeFi: DEXs, AMMs, lending, staking
- Governance: DAOs, voting, proposals
- Marketplace: Trading, escrow, auctions
- Gaming: Items, characters, game logic
- Infrastructure: Registries, configs, utilities
Step 2: Search Relevant Examples
Priority Examples by Category:
NFTs & Token Objects
token_objects/– Modern object-based tokens (V2 pattern)mint_nft/– NFT minting patternsnft_dao/– NFT-gated governancecollection_manager/– Collection management- (daily-move)
composable-nfts/– NFTs that contain other NFTs - (daily-move)
modifying-nfts/– Mutable NFT metadata patterns - (daily-move)
parallel-nfts/– Concurrent NFT minting - (daily-move)
liquid-nfts/– Fractionalized/liquid NFTs
When to use: Building NFT collections, digital collectibles, tokenized assets
Fungible Assets
fungible_asset/– Modern fungible token standardcoin/– Basic coin implementationmanaged_fungible_asset/– Controlled fungible assets- (daily-move)
fa-lockup-example/– FA lockup and escrow patterns - (daily-move)
fractional-token/– Fractional token ownership - (daily-move)
controlled-mint/– Controlled minting with access control
When to use: Creating tokens, currencies, reward points
DeFi & Trading
marketplace/– NFT marketplace patternsswap/– Simple token swapliquidity_pool/– AMM pool implementationstaking/– Staking mechanisms
When to use: Building DEXs, marketplaces, trading platforms
Governance & DAOs
dao/– DAO governance patternsvoting/– Voting mechanismsmultisig/– Multi-signature accounts
When to use: Building DAOs, governance systems, voting
Basic Patterns
hello_blockchain/– Module structure basicsmessage_board/– Simple state managementresource_account/– Resource patterns (legacy – avoid for new code)- (daily-move)
error-codes/– Error code conventions and patterns - (daily-move)
private-vs-public/– Function visibility and access - (daily-move)
objects/– Object model fundamentals
When to use: Learning Move basics, simple contracts
Advanced Patterns
object_playground/– Object model explorationcapability/– Capability-based securityupgradeable/– Upgradeable contracts- (daily-move)
design-patterns/– Autonomous objects and other design patterns - (daily-move)
struct-capabilities/– Struct-based capability patterns - (daily-move)
move-2/– Move 2 language features and idioms - (daily-move)
storage/– Storage layout and optimization patterns - (daily-move)
data-structures/– Heap data structure implementation
When to use: Complex architectures, security patterns
Gaming
- (daily-move)
lootbox/– Randomized loot box mechanics
When to use: Building games, randomized rewards, loot systems
Step 3: Review Example Code
What to look for:
-
Module Structure:
- How are imports organized?
- What structs are defined?
- How are error codes structured?
-
Object Creation:
- How are objects created?
- Which refs are generated?
- How is ownership managed?
-
Access Control:
- How is signer authority verified?
- How is object ownership checked?
- What roles/permissions exist?
-
Operations:
- How are transfers handled?
- How are updates secured?
- What validations are performed?
-
Testing:
- What test patterns are used?
- How is coverage achieved?
Step 4: Adapt Patterns to Your Use Case
Don’t copy blindly – adapt:
- Understand the pattern: Why is it structured this way?
- Identify core concepts: What security checks are critical?
- Adapt to your needs: Modify for your specific requirements
- Maintain security: Keep all security checks intact
- Test thoroughly: Ensure 100% coverage
Example Discovery Table
| Building | Search For | Source | Key Files |
|---|---|---|---|
| NFT Collection | token_objects, mint_nft |
aptos-core | token_objects/sources/token.move |
| Fungible Token | fungible_asset |
aptos-core | fungible_asset/sources/fungible_asset.move |
| Marketplace | marketplace |
aptos-core | marketplace/sources/marketplace.move |
| DAO | dao, voting |
aptos-core | dao/sources/dao.move |
| Token Swap | swap, liquidity_pool |
aptos-core | swap/sources/swap.move |
| Staking | staking |
aptos-core | staking/sources/staking.move |
| Simple Contract | hello_blockchain, message_board |
aptos-core | hello_blockchain/sources/hello.move |
| Object Patterns | object_playground |
aptos-core | object_playground/sources/playground.move |
| Composable NFTs | composable-nfts |
daily-move | snippets/composable-nfts/ |
| FA Lockup/Escrow | fa-lockup-example |
daily-move | snippets/fa-lockup-example/ |
| Design Patterns | design-patterns |
daily-move | snippets/design-patterns/ |
| Move 2 Features | move-2 |
daily-move | snippets/move-2/ |
| Data Structures | data-structures |
daily-move | snippets/data-structures/ |
| Storage Patterns | storage |
daily-move | snippets/storage/ |
| Loot Box Patterns | lootbox |
daily-move | snippets/lootbox/ |
How to Access Examples
Option 1: GitHub Web Interface
https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/move-examples
Browse online and read source files directly.
Option 2: Clone Repository (Recommended)
# Clone Aptos core
git clone https://github.com/aptos-labs/aptos-core.git
# Navigate to examples
cd aptos-core/aptos-move/move-examples
# List all examples
ls -la
# View specific example
cd token_objects
cat sources/token.move
Option 3: daily-move Repository
Browse online:
https://github.com/aptos-labs/daily-move/tree/main/snippets
Clone locally:
git clone https://github.com/aptos-labs/daily-move.git
cd daily-move/snippets
ls -la
Option 4: Search Aptos Documentation
https://aptos.dev/build/smart-contracts
Many examples are documented with explanations.
Common Patterns from Examples
Pattern 1: Object Creation (from token_objects)
// From: token_objects/sources/token.move
public entry fun create_token(
creator: &signer,
collection_name: String,
description: String,
name: String,
uri: String,
) {
let constructor_ref = token::create_named_token(
creator,
collection_name,
description,
name,
option::none(),
uri,
);
// ... additional setup
}
Takeaway: Use named tokens for collections, create_object for unique items.
Pattern 2: Access Control (from dao)
// From: dao/sources/dao.move
public entry fun execute_proposal(
proposer: &signer,
proposal_id: u64
) acquires DAO, Proposal {
let dao = borrow_global_mut<DAO>(@dao_addr);
let proposal = vector::borrow_mut(&mut dao.proposals, proposal_id);
// Verify proposal passed
assert!(proposal.votes_for > proposal.votes_against, E_PROPOSAL_NOT_PASSED);
// Execute actions
// ...
}
Takeaway: Verify state conditions before executing critical operations.
Pattern 3: Transfer Control (from fungible_asset)
// From: fungible_asset/sources/fungible_asset.move
public fun transfer<T: key>(
from: &signer,
to: address,
amount: u64
) acquires FungibleStore {
// Verify sender has sufficient balance
let from_store = borrow_global_mut<FungibleStore<T>>(signer::address_of(from));
assert!(from_store.balance >= amount, E_INSUFFICIENT_BALANCE);
// Deduct from sender
from_store.balance = from_store.balance - amount;
// Add to recipient
let to_store = borrow_global_mut<FungibleStore<T>>(to);
to_store.balance = to_store.balance + amount;
}
Takeaway: Check-effects-interactions pattern (verify, deduct, add).
ALWAYS Rules
- â ALWAYS search examples before writing new contracts
- â ALWAYS check both aptos-core (canonical) and daily-move (educational) repositories
- â ALWAYS understand patterns before copying
- â ALWAYS adapt patterns to your use case
- â ALWAYS maintain security checks from examples
- â ALWAYS reference which example you adapted from
- â ALWAYS test adapted code thoroughly
NEVER Rules
- â NEVER copy code without understanding it
- â NEVER skip security checks from examples
- â NEVER use deprecated patterns (resource accounts, address-based)
- â NEVER assume examples are always up-to-date (verify against docs)
- â NEVER mix V1 and V2 patterns
- â NEVER include real private keys or credentials when adapting examples â use
"0x..."placeholders
Search Checklist
Before writing contract code:
- Identified category (NFT, DeFi, DAO, etc.)
- Found 2-3 relevant examples in aptos-core
- Checked daily-move snippets for educational examples
- Reviewed module structure
- Identified security patterns
- Understood object creation patterns
- Noted access control mechanisms
- Checked test patterns
- Ready to adapt to my use case
Example Adaptation Workflow
Step-by-Step: Building NFT Collection
-
Search: Find
token_objectsexample -
Review Structure:
token_objects/ âââ sources/ â âââ collection.move # Collection management â âââ token.move # Token operations â âââ property_map.move # Metadata handling âââ tests/ âââ token_tests.move -
Identify Key Patterns:
- Collection creation with
create_collection - Token minting with
create_named_token - Metadata storage using
PropertyMap - Transfer control with
TransferRef
- Collection creation with
-
Adapt to Your Needs:
- Keep object creation pattern
- Keep security checks
- Add your custom fields
- Add your business logic
- Write comprehensive tests
-
Reference in Code:
// Adapted from: aptos-core/move-examples/token_objects module my_addr::custom_nft { // ... your implementation }
References
Official Examples:
- aptos-core: https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/move-examples
- daily-move: https://github.com/aptos-labs/daily-move/tree/main/snippets
- Documentation: https://aptos.dev/build/smart-contracts
Related Skills:
write-contracts– Apply patterns after searchingsecurity-audit– Verify security of adapted codegenerate-tests– Test adapted patterns
Remember: Search examples first. Understand patterns. Adapt securely. Test thoroughly.