near

near-smart-contracts

5
1
# Install this skill:
npx skills add near/agent-skills --skill "near-smart-contracts"

Install specific skill from multi-skill repository

# Description

NEAR Protocol smart contract development in Rust. Use when writing, reviewing, or deploying NEAR smart contracts. Covers contract structure, state management, cross-contract calls, testing, security, and optimization patterns.

# SKILL.md


name: near-smart-contracts
description: NEAR Protocol smart contract development in Rust. Use when writing, reviewing, or deploying NEAR smart contracts. Covers contract structure, state management, cross-contract calls, testing, security, and optimization patterns.
license: MIT
metadata:
author: near
version: "1.0.0"


NEAR Smart Contracts Development

Comprehensive guide for developing secure and efficient smart contracts on NEAR Protocol using Rust and the NEAR SDK.

When to Apply

Reference these guidelines when:
- Writing new NEAR smart contracts in Rust
- Reviewing existing contract code for security and optimization
- Implementing cross-contract calls and callbacks
- Managing contract state and storage
- Testing and deploying NEAR contracts
- Optimizing gas usage and performance

Rule Categories by Priority

Priority Category Impact Prefix
1 Security & Safety CRITICAL security-
2 Contract Structure HIGH structure-
3 State Management HIGH state-
4 Cross-Contract Calls MEDIUM-HIGH xcc-
5 Gas Optimization MEDIUM gas-
6 Testing MEDIUM testing-
7 Best Practices MEDIUM best-

Quick Reference

1. Security & Safety (CRITICAL)

  • security-storage-checks - Always validate storage operations
  • security-access-control - Implement proper access control for sensitive functions
  • security-reentrancy - Protect against reentrancy attacks
  • security-overflow - Use checked arithmetic to prevent overflow
  • security-callback-validation - Validate callback results and handle failures
  • security-private-callbacks - Mark callbacks as private
  • security-yoctonear-validation - Validate attached deposits

2. Contract Structure (HIGH)

  • structure-near-bindgen - Use #[near_bindgen] macro for contract struct
  • structure-initialization - Implement proper initialization patterns
  • structure-versioning - Plan for contract upgrades with versioning
  • structure-events - Emit events for important state changes
  • structure-standards - Follow NEAR Enhancement Proposals (NEPs)

3. State Management (HIGH)

  • state-collections - Use NEAR SDK collections (Vector, LookupMap, UnorderedMap, etc.)
  • state-serialization - Use efficient serialization (Borsh)
  • state-lazy-loading - Load state lazily to save gas
  • state-pagination - Implement pagination for large datasets
  • state-migration - Plan state migration strategies

4. Cross-Contract Calls (MEDIUM-HIGH)

  • xcc-promise-chaining - Chain promises correctly
  • xcc-callback-handling - Handle all callback scenarios (success, failure)
  • xcc-gas-management - Allocate appropriate gas for cross-contract calls
  • xcc-error-handling - Implement robust error handling
  • xcc-result-unwrap - Never unwrap promise results without checks

5. Gas Optimization (MEDIUM)

  • gas-batch-operations - Batch operations to reduce transaction costs
  • gas-minimal-state-reads - Minimize state reads and writes
  • gas-efficient-collections - Choose appropriate collection types
  • gas-view-functions - Mark read-only functions as view
  • gas-avoid-cloning - Avoid unnecessary cloning of large data

6. Testing (MEDIUM)

  • testing-unit-tests - Write comprehensive unit tests
  • testing-integration-tests - Use workspaces-rs for integration tests
  • testing-simulation-tests - Test with near-sdk-sim or workspaces
  • testing-edge-cases - Test boundary conditions and edge cases
  • testing-gas-profiling - Profile gas usage in tests

7. Best Practices (MEDIUM)

  • best-panic-messages - Provide clear panic messages
  • best-logging - Use env::log_str for debugging
  • best-documentation - Document public methods and complex logic
  • best-error-types - Define custom error types
  • best-constants - Use constants for magic numbers

How to Use

Read individual rule files for detailed explanations and code examples:

rules/security-storage-checks.md
rules/structure-near-bindgen.md

Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Additional context and NEAR-specific considerations

Resources

  • NEAR Documentation: https://docs.near.org
  • NEAR SDK Rust: https://docs.near.org/sdk/rust/introduction
  • NEAR Examples: https://github.com/near-examples
  • NEAR Standards (NEPs): https://github.com/near/NEPs
  • Security Best Practices: https://docs.near.org/develop/contracts/security/welcome

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.