Getting started
Quickstart
Build your first Mini App integrated with Lemon Cash
Create a simple Mini App that authenticates users, triggers deposits and calls smart contract functions in just a few steps.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Build your first Mini App integrated with Lemon Cash
npm install @lemoncash/mini-app-sdk
yarn add @lemoncash/mini-app-sdk
import { useState, useEffect } from 'react';
import { authenticate, ChainId, TransactionResult } from '@lemoncash/mini-app-sdk';
export const MiniApp = () => {
const [wallet, setWallet] = useState<string | undefined>(undefined);
const handleAuthentication = async () => {
const result = await authenticate({
chainId: ChainId.POLYGON_AMOY,
});
if (result.result === TransactionResult.SUCCESS) {
setWallet(result.data.wallet);
}
};
useEffect(() => {
handleAuthentication();
}, []);
};
import React from 'react';
import { deposit } from '@lemoncash/mini-app-sdk';
export const MiniApp = () => {
const handleDeposit = async () => {
try {
const result = await deposit({
amount: '100',
tokenName: 'USDC',
});
console.log('Deposit successful:', result.txHash);
} catch (error) {
console.error('Deposit failed:', error);
throw error;
}
};
return (
<button onClick={handleDeposit}>
Send 100 USDC
</button>
);
};
import { isWebView } from '@lemoncash/mini-app-sdk';
export const MiniApp = () => {
if (!isWebView()) {
return <div>Please open this app in Lemon Cash</div>;
}
};
import React, { useEffect, useState } from 'react';
import { authenticate, deposit, isWebView, ChainId, TransactionResult } from '@lemoncash/mini-app-sdk';
export const MiniApp = () => {
const [wallet, setWallet] = useState<string | undefined>(undefined);
const handleAuthentication = async () => {
const result = await authenticate({
chainId: ChainId.POLYGON_AMOY,
});
if (result.result === TransactionResult.SUCCESS) {
setWallet(result.data.wallet);
}
};
useEffect(() => {
handleAuthentication();
}, []);
const handleDeposit = async () => {
try {
const result = await deposit({
amount: '100',
tokenName: 'USDC',
});
console.log('Deposit successful:', result.txHash);
} catch (error) {
console.error('Deposit failed:', error);
throw error;
}
};
if (!isWebView()) {
return <div>Please open this app in Lemon Cash</div>;
}
return (
<div>
<span>
{wallet
? `${wallet.slice(0, 8)}...${wallet.slice(-8)}`
: 'Authenticating...'
}
</span>
<button onClick={handleDeposit} disabled={!wallet}>
{wallet ? 'Send 100 USDC' : 'Authenticating...'}
</button>
</div>
);
};