I'm happy to announce the release of near-sdk-contract-tools v2.0.0! 🎉 With this library, it is dead-simple to create highly flexible, standard-compliant smart contracts. Simply invoke the derive macro and you're set! If you need extra customization, you can easily *hook* into the `Hook`s API to access a lot more power. Includes support for NFT+extensions, FT+extensions, storage management, multisignature wallets, and a few nifty utilities and efficiency tricks to boot! There are components for `Escrow`, `Owner`, `Pause`, and more. Here's how simple it is to write a fungible token contract using v2.0.0: ```rust use near_sdk::{ borsh::{self, BorshDeserialize, BorshSerialize}, near_bindgen, PanicOnDefault, }; use near_sdk_contract_tools::ft::*; #[derive(BorshSerialize, BorshDeserialize, PanicOnDefault, FungibleToken)] #[near_bindgen] pub struct MyFtContract {} #[near_bindgen] impl MyFtContract { #[init] pub fn new() -> Self { let mut contract = Self {}; contract.set_metadata(&FungibleTokenMetadata::new( "My Fungible Token".into(), "MYFT".into(), 24, )); contract } } ``` Add it to your project: `cargo add near-sdk-contract-tools` https://crates.io/crates/near-sdk-contract-tools https://github.com/near/near-sdk-contract-tools