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
  • Overview
  • Deploy your Smart Contract
  • ERC721 vs ERC1155
  • New Contracts
  • Existing Contracts
  • Supported Networks
  • Verification on Etherscan/Polygonscan
  1. NFT CHECKOUT SDK

Get Started on EVM

PreviousAbout Ramper NFT CheckoutNextGet Started on NEAR

Last updated 1 year ago

Overview

Make your NFTs accessible to everyone globally. Ramper NFT Checkout provides a fast NFT checkout solution supporting both crypto & fiat. Ramper handles instant wallet creation, chargebacks, and pays you in your NFT contract's native tokens.

Check out our , and try purchasing a (free) Ramper Token!

To get started you'll need your NFT assets (images + metadata) hosted online, for example on AWS S3 or IPFS. For a help generating NFT art, check out .

Deploy your Smart Contract

The first step in launching your NFT collection is deploying a smart contract. Ramper supports a couple different ways of achieving this:

  • Launch a new collection that uses the Ramper Interface

  • Deploy a "bridge" contract that allows Ramper to interact with your pre-existing smart contract

You'll probably want to deploy a contract on a testnet first -- we currently support Ethereum's Goerli network and Polygon's Mumbai network. Deploy contracts to the test network, and make sure to pick the appropriate network in the Developer Dashboard when setting up your collection in the next step (Setting Up Your Collection)

ERC721 vs ERC1155

Ramper currently supports 2 approaches to NFT Contracts: ERC721 and ERC1155. While there are variations of both contracts, we define them as follows:

ERC721 contracts are "gumball-machine" style -- users purchase whatever token is up next for minting (or a random token)

ERC1155 contracts are "vending-machine" style -- your Dapp should always supply the token_id the user is looking to purchase. Please note: for ERC1155 contracts, you'll need to supply `token_id` in each of the functions below!

If you have more specific requirements or questions, please reach out at team@ramper.xyz or message us on Discord.

New Contracts

The simplest way to get started with Ramper NFT Checkout is to launch a brand new contract that supports IRamperInterface721/1155. Here is a basic outline of the interface:

interface IRamperInterface721 {
    /// NOTE: ALL of the below functions must alllow to be called successfully from
    /// addreess 0xA31f61F6957d570fb9BEc9E3879EA6947dFE5688
    
    /// @notice Gets the number of tokens the specified wallet is able to purchase currently.
    function availableTokens(address _userWallet) external view returns (uint256 quantity);


    /// @notice Gets the price of a single NFT in Wei
    function price() external view returns (uint256);


    /// @notice Mint function that mints the NFT
    function mint(address _userWallet, uint256 _quantity) external payable;


    /// @notice Helper Transfer function to allow multiple tokens to be transferred at once
    function safeBulkTransferFrom(address _from, address _to, uint256[] memory _tokenIds) external;
}
  • A price function that returns the current price for a token

  • A mint function that mints X tokens to a specified address

  • An availableTokens function that checks how many tokens a user can buy in their next transaction. You can implement custom logic to restrict per-wallet limits, per-transaction limits, and/or a cap on the total supply.

  • (ERC721 only) A safeBulkTransferFrom function that allows Ramper to transfer multiple tokens in one transaction. This greatly reduces gas costs for larger transactions.

Existing Contracts

If you already have your contract deployed, you can deploy a "bridge" contract that allows Ramper to interact with your custom functions. The interface is the same as above.

Supported Networks

Currently Ramper supports the following networks (more to come soon):

  • Ethereum (+ Goerli test network)

  • Polygon (+ Mumbai test network)

Make sure to note down which network you've deployed your contract to, as we'll use it when setting up the collection below.

Verification on Etherscan/Polygonscan

Contracts need to be verified on Etherscan/Polygonscan before they can be used with Ramper NFT Checkout. If you're using hardhat, run the following command:

npx hardhat verify <my_contract_addr> --network <my_network>

You can find the full interface definition in the on Github. In short, your contract needs:

You can see full, working example contracts in the Ramper Github repo, for both and .

The primary difference with Bridge Contracts is that the safeBulkTransferFromMUST check that the sender matches the "_from" address, and Ramper must manually approve the Bridge contract to manage NFT transfers. Please reach out to us for approvals:

Here you can find a full, working example of an

💸
Live Demo
this tutorial
Ramper Contracts Repo
ERC721
ERC1155
https://docs.ramper.xyz/#chat-with-us
ERC721 bridge contract