Devpack Token Standards
NEP17.sol — Fungible Tokens
Complete NEP-17 implementation with ERC-20 compatibility:
solidity
interface INEP17 {
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address from, address to, uint256 amount, Any calldata data) external returns (bool);
}Key features:
onNEP17Paymentcallback support viaINEP17ReceiverAnytype for thedataparameter (maps to NeoVM's unconstrained StackItem)- Mint, burn, pause, and allowance management
- Inherits
FrameworkBasefor ownership and witness control
NEP11.sol — Non-Fungible Tokens
Complete NEP-11 implementation supporting both indivisible and divisible NFTs:
solidity
interface INEP11 {
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function tokensOf(address owner) external view returns (bytes32[] memory);
function ownerOf(bytes32 tokenId) external view returns (address);
function transfer(address to, bytes32 tokenId, bytes calldata data) external returns (bool);
function properties(bytes32 tokenId) external view returns (bytes memory);
}
interface INEP11Divisible is INEP11 {
function balanceOf(address owner, bytes32 tokenId) external view returns (uint256);
function transfer(address from, address to, uint256 amount, bytes32 tokenId, bytes calldata data) external returns (bool);
function ownersOf(bytes32 tokenId) external view returns (address[] memory);
}NEP24.sol — Royalty Standard
Minimal NEP-24 royalty mixin for NEP-11 NFTs:
solidity
interface INEP24Royalty {
struct RoyaltyInfo {
address royaltyRecipient;
uint256 royaltyAmount;
}
function royaltyInfo(bytes32 tokenId, address royaltyToken, uint256 salePrice)
external view returns (RoyaltyInfo[] memory);
}- Per-token and default royalty rules (basis points: 10000 = 100%)
_setDefaultRoyalty(),_setTokenRoyalty(),_clearTokenRoyalty()- Returns empty array when no royalty is configured
