Speak the standards · Intermediate
NEPs explained
NEPs — NEAR Enhancement Proposals — are the standards that let wallets, explorers, DEXes and marketplaces work with any contract that follows them. This module explains the ones you will meet as a NEAR developer, in plain words, with the method tables, call flows and Rust code you need to implement or integrate them.
Each lesson maps the standard to its closest Ethereum counterpart (ERC-20, ERC-721, ERC-1155, ERC-2981, ERC-2771, EIP-712…) and calls out where NEAR’s async, account-based model makes the design different — no approve on fungible tokens, explicit storage deposits, transfer-and-call with refunds, and keys that are not addresses.
15 lessons~85 min45 quiz questionsFree · no sign-up
What you’ll learn
- Read a NEP and know which parts are normative, and how a standard becomes final
- Implement or integrate NEP-141 fungible tokens, including storage registration (NEP-145) and metadata (NEP-148)
- Explain why token transfers require exactly 1 yoctoNEAR and how transfer-and-call refunds work
- Work with the NFT family: core (NEP-171), metadata (NEP-177), approvals (NEP-178), enumeration (NEP-181) and royalties (NEP-199)
- Use multi tokens (NEP-245) and understand how NEAR Intents builds on them
- Emit NEP-297 events and publish NEP-330 source metadata for verifiable builds
- Sponsor users’ gas with NEP-366 meta transactions and verify NEP-413 signed messages for sign-in
- Understand soulbound tokens (NEP-393): issuers, registries, expiry, revocation and recovery
Lessons
2. Fungible tokens
- NEP-141: Fungible tokensNEP-141 fungible token standard on NEAR: ft_transfer, ft_transfer_call and its callbacks, the 1 yoctoNEAR rule, and why there is no ERC-20 approve.
- NEP-145: Storage managementNEP-145 storage management standard on NEAR: storage_deposit, withdraw, unregister and balance bounds — why you must register before receiving a token.
- NEP-148: Fungible token metadataNEP-148 fungible token metadata on NEAR: the ft_metadata view, the "ft-1.0.0" spec string, name, symbol, decimals and an inline data-URL icon.
3. NFTs
- NEP-171: Non-fungible tokensNEP-171 non-fungible token (NFT) core standard on NEAR: nft_transfer, nft_transfer_call, nft_on_transfer, nft_resolve_transfer and nft_token vs ERC-721.
- NEP-177: NFT metadataNEP-177 NFT metadata standard on NEAR: contract-level nft_metadata with spec "nft-1.0.0", per-token title, media, media_hash and reference fields.
- NEP-178: NFT approval managementNEP-178 NFT approval management on NEAR: nft_approve, nft_revoke, nft_is_approved, approval IDs and nft_on_approve — how marketplaces list NFTs safely.
- NEP-181: NFT enumerationNEP-181 NFT enumeration standard on NEAR: nft_total_supply, nft_tokens, nft_supply_for_owner and nft_tokens_for_owner, and how to paginate them safely.
- NEP-199: NFT royalties and payoutsNEP-199 NFT royalties and payouts on NEAR: nft_payout and nft_transfer_payout, the Payout map, max_len_payout, and how it compares to ERC-2981.
5. Contract conventions
- NEP-297: EventsNEP-297 events standard on NEAR: the EVENT_JSON: log prefix, standard/version/event/data fields, token event names, and how it differs from Solidity events.
- NEP-330: Contract source metadataNEP-330 contract source metadata on NEAR: the contract_source_metadata view, version, source link, implemented standards and build info for verifiable builds.
6. Accounts & signing
- NEP-366: Meta transactionsNEP-366 meta transactions on NEAR: signed delegate actions, relayers that pay the gas, nonces and expiry, and how it compares to ERC-2771 and ERC-4337.
- NEP-413: Signing messages off-chainNEP-413 off-chain message signing on NEAR: the signMessage payload (message, nonce, recipient), the 2^31+413 tag, and verifying signatures vs EIP-191/712.
- NEP-393: Soulbound tokensNEP-393 soulbound token (SBT) standard on NEAR: non-transferable tokens, issuers and registries, token classes, expiry, revocation, recovery and soul transfer.