API
Token / NFT Permit API
The key asset story in Moss is not transfer alone. It is how system modules unify permissions, signatures, and execution.
3 sectionstoken-and-nft-permit-api
01
TokenManage
- `tokenApprove(asset, spender, value)`: set allowance.
- `tokenApproveForAll(spender, approved)`: set wallet-wide approval.
- `tokenTransfer(asset, to, value)`: direct transfer.
- `tokenTransferNonce(asset, caller)`: read signed-transfer nonce.
- `tokenTransferWithSig(asset, to, value, deadline, signature)`: submit a signed transfer.
02
NFTManage
- `nftApproveWithSig(asset, operator, tokenId, deadline, signature)`: single-NFT signed approval.
- `nftSetApprovalForOneAllWithSig(asset, operator, approved, deadline, signature)`: collection-scoped signed approval.
- `nftSetApprovalForAllAllWithSig(operator, approved, deadline, signature)`: global NFT signed approval.
03
Signing Model
- Both TokenManage and NFTManage permits rely on Moss dual-layer EIP-712 / ERC-1271 wrapping.
- The frontend reads nonces first, then uses wallet signing to produce the outer safe signature.
- That makes payments, listings, approvals, and delegated execution possible without directly moving the owner context each time.