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.