🥜
Peanut Docs
  • Learn
    • 🥜What is Peanut?
    • 🏦Cashout
      • Supported geographies
    • 📩How to use Peanut Links?
      • ⚙️How do Peanut Links Work?
      • 🔒Trust assumptions
    • 📌Use cases
    • 📚Case Studies
      • 🎁Welcome Packs
      • 📘Raffles to Boost UWAs and Transactions
      • 📗Sending Testnet Tokens at Hackathons
      • 📙IRL Events Marketing
    • ⛓️Supported Chains and Tokens
    • 💰Pricing
    • 🆘Support
  • Integrate
    • Using the SDK
      • Create ClaimLinks
        • Create Link
        • Batch Create Links
        • Create Raffle Links
        • Create Multi-Token Link
        • Create NFT Link
        • Create Gasless Links
        • Create Branded Links
      • Claim
        • Claim Link
        • Claim Gasless Link
        • Claim Cross-Chain Link
        • Claim Raffle Link
        • Claim Link as Sender (Reclaiming)
      • Create Request Link
      • Pay a Request Link
      • Pay a Request Link X-Chain
      • Utils
        • Get Link Details
        • Cross-chain
          • Get Supported Destination Chains
          • Get Supported Destination Tokens
          • Get Cross-Chain Options
          • Get Cross-Chain Route
        • Raffle (Legacy)
          • Get Raffle Info
          • Get User Raffle Status
          • Get Raffle Leaderboard
        • Get Default Provider
        • Get Supported Peanut Chains
        • Toggle Verbosity
        • EthersV5 <> Peanut Transaction Types
        • Estimate Fee Options
        • Get Random String
        • Get all deposits for an Address
        • Get Token Balance
      • API Keys
      • White-Labelling
      • Troubleshooting
      • SDK FAQ
    • Embedding an IFrame
    • Integrate Directly in Smart Contracts
    • Wallet Integrations
      • 🎬UI Examples
  • Other
    • 👾Bug bounties
    • 🔓Security Audit
    • 📜Peanut Protocol Contracts
  • BLOGS
    • Transfer Abstraction
    • Can We Sidestep Onchain Identity?
  • Additional Links
    • 🐦Twitter
    • 😊Telegram
    • 🤙Discord
    • 🥜Work with Us
    • 🎨Press Kit
    • 👨‍⚖️Contact and Legal
Powered by GitBook
On this page
  1. Integrate
  2. Using the SDK
  3. Create ClaimLinks

Create Multi-Token Link

Want to have multiple tokens in a single link? Have a look here how you can!

If you want a Link to hold multiple tokens (e.g. an NFT, some USDC and some Ether for gas), then you can create a Multi-Token Link. To do this, you'll have to first create n links with the same password p. Then, you can invoke peanut.createMultiLinkFromLinks(links)to get the Multi-Token Link. Easy!

Note: you can also create Links using the signer agnostic functions (check Create Link) and pass these Links into the createMultiLinkFromLinks() function.

import peanut, { getDefaultProvider } from '@squirrel-labs/peanut-sdk'
import { Wallet } from 'ethersv5'

const chainId = '137' // polygon
const mnemonic = 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol'

async function createLinks(): Promise<string> {
	let wallet = Wallet.fromMnemonic(mnemonic)

	const provider = await getDefaultProvider(chainId)
	wallet = wallet.connect(provider)

	const { link, txHash } = await peanut.createLink({
		structSigner: {
			signer: wallet,
		},
		linkDetails: {
			chainId: chainId,
			tokenAmount: 0.01,
			tokenType: 0, // 0 for ether, 1 for erc20, 2 for erc721, 3 for erc1155
			tokenDecimals: 18,
		},
	})

	const { link: link2, txHash: txHash2 } = await peanut.createLink({
		structSigner: {
			signer: wallet,
		},
		linkDetails: {
			chainId: chainId,
			tokenAmount: 0.01,
			tokenType: 1, // 0 for ether, 1 for erc20, 2 for erc721, 3 for erc1155
			tokenAddress: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174', // USDC
			tokenDecimals: 6,
		},
	})

	const multiLink = peanut.createMultiLinkFromLinks([link, link2])

	return multiLink
}

createLinks().then((link) => console.log(link))
PreviousCreate Raffle LinksNextCreate NFT Link

Last updated 1 year ago