Ramper Documentation
  • 🌟WELCOME
  • 👨‍💻Developer Guide
    • Developer Dashboard
  • 🔐EMBEDDED WALLET SDK
    • Quickstart
      • For Web Apps
        • Multichain Supported
          • Wallet Integration
          • Approve NFT
          • Approve Token
          • Sign Typed
        • Get Started on Viction
      • For Unity Apps
      • For Telegram Mini Apps
        • Set up Telegram bot
        • Implement Ramper Telegram SDK
      • For React Native Apps
        • Installation
        • Getting Started
        • Wallet Integration
        • Sign Typed
        • Approve
    • Terms & Conditions
    • Privacy Policy
  • 💜RAMPER WALLET
    • About Ramper Wallet
    • 📖User Guides
      • Authentication
      • How to send NFTs
      • How to sign in to a new account
      • Wallet settings
      • How to Send & Receive tokens
      • How to add custom tokens
      • Manage Tokens
      • General settings
      • How to send assets via email
      • How to use Vault
      • How to send assets via OneID
      • How to migrate accounts from Old version to New version
    • ❓User FAQs
      • Which networks are supported on Ramper?
      • What social accounts can I use to log in to Ramper?
      • What is the difference between a Password and a Passphrase?
      • Zero-gas transactions
      • Does Ramper hold my funds?
      • Can I import my wallet from Ramper to another Web3 wallet?
      • Can I import my wallet to Ramper?
      • Why can't I see my assets?
      • What is gas fee?
      • Can I get my assets back if I send them to the wrong addresses?
      • I forgot the password of my social accounts. How can I access my funds on Ramper?
      • What happens if my social account is compromised?
      • Can I recover my wallet if I lose my social account?
      • Can I change the email that is associated with my wallet address?
      • I can't find the answer to my question. How can I get support?
      • What is a Protected Account?
      • I forgot the PIN code to log in to Ramper Wallet. How can I access my funds?
      • Which email domains are blocked?
    • Ramper Wallet (Extension) Integration
      • EVM Dapp Integration
      • Sei Dapp Integration
    • Privacy Policy
    • Terms of Service
  • 💸NFT CHECKOUT SDK
    • About Ramper NFT Checkout
    • Get Started on EVM
    • Get Started on NEAR
    • Setting Up Your Collection
    • Moving Your Collection to Production
    • Purchase History
    • Terms of Service
    • Privacy Policy
  • Import
Powered by GitBook
On this page
  • Approve Single NFT
  • Approve NFT Collection
  1. EMBEDDED WALLET SDK
  2. Quickstart
  3. For Web Apps
  4. Multichain Supported

Approve NFT

Approve Single NFT

approve-nft.tsx
import {
  approveToken,
  ApproveTypes,
  RawTransaction
} from "@ramper-v2/multi";
import Web3 from "web3";
import { CHAIN_DATA } from "@wallet/constants";
 
const rpcURL = CHAIN_DATA[chain].rpcURL;
const client = new Web3(
  new Web3.providers.HttpProvider(rpcURL)
);
 
const approveNFTData = {
  approveContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  spender: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
  tokenID: '2443'
}
 
 
const handleApproveNFT = async () => {
  try {
    const { approveContract, spender, tokenID } = approveNFTData;
 
    if (!approveContract || !chain) return;
 
    const contract = new client.eth.Contract(
      ERC721ABI as any,
        approveContract
      );
    const dataraw = contract.methods.approve(spender, tokenID);
    const rawTransaction: RawTransaction = {
      data: dataraw.encodeABI(),
      to: approveContract,
    };
 
    const result = await approveToken({
      transaction: rawTransaction,
      options: {
        type: ApproveTypes.NFT,
      },
      chain,
    });
  } catch (error) {
    // Error Handler
  }
};

Approve NFT Collection

approve-nft-collection.tsx
import {
  approveToken,
  ApproveTypes
} from "@ramper-v2/multi";
import Web3 from "web3";
import { CHAIN_DATA } from "@wallet/constants";
 
const rpcURL = CHAIN_DATA[chain].rpcURL;
 
const approveNFTCollectionData = {
  approveContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
  spender: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
  tokenID: '2443'
}
 
const client = new Web3(
  new Web3.providers.HttpProvider(rpcURL)
);
 
const handleApproveNFTCollection = async () => {
  try {
    const { approveContract, spender } = approveNFTCollectionData;
 
    const contract = new client.eth.Contract(
      ERC721ABI as any,
      approveContract
    );
    const dataraw = contract.methods.setApprovalForAll(spender, true);
    const rawTransaction: RawTransaction = {
      data: dataraw.encodeABI(),
      to: approveContract,
    };
 
    const result = await approveToken(rawTransaction, {
      type: ApproveTypes.NFTCOLLECTION,
    });
  } catch (error) {
    // Error Handler
  }
};
PreviousWallet IntegrationNextApprove Token

Last updated 4 months ago

🔐