skills/aptos/dapp-integration/SKILL.md
Expert on building Aptos dApps with frontend integration. Covers wallet connectivity (Petra, Martian, Pontem), wallet adapter patterns, TypeScript SDK, transaction building and submission, account management, and React/Next.js integration.
npx skillsauth add raintree-technology/claude-starter aptos-dapp-integrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Expert on integrating Aptos blockchain with frontend applications.
npm install @aptos-labs/wallet-adapter-react \
petra-plugin-wallet-adapter \
@martianwallet/aptos-wallet-adapter
import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react";
import { PetraWallet } from "petra-plugin-wallet-adapter";
import { MartianWallet } from "@martianwallet/aptos-wallet-adapter";
function App() {
const wallets = [new PetraWallet(), new MartianWallet()];
return (
<AptosWalletAdapterProvider plugins={wallets} autoConnect={true}>
<YourApp />
</AptosWalletAdapterProvider>
);
}
import { useWallet } from "@aptos-labs/wallet-adapter-react";
function WalletButton() {
const { connect, disconnect, account, connected, signAndSubmitTransaction } = useWallet();
if (connected) {
return (
<div>
<p>Connected: {account?.address}</p>
<button onClick={disconnect}>Disconnect</button>
</div>
);
}
return <button onClick={() => connect("Petra")}>Connect</button>;
}
import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";
const config = new AptosConfig({ network: Network.MAINNET });
const aptos = new Aptos(config);
// Account info
const account = await aptos.getAccountInfo({ accountAddress: "0x..." });
// Resources
const resources = await aptos.getAccountResources({ accountAddress: "0x..." });
// Specific resource
const coin = await aptos.getAccountResource({
accountAddress: "0x...",
resourceType: "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>"
});
// View function
const result = await aptos.view({
payload: {
function: "0x1234::module::get_balance",
functionArguments: ["0xabcd..."],
},
});
const { signAndSubmitTransaction } = useWallet();
const handleTransfer = async () => {
const response = await signAndSubmitTransaction({
data: {
function: "0x1::coin::transfer",
typeArguments: ["0x1::aptos_coin::AptosCoin"],
functionArguments: ["0xrecipient...", "100000000"],
},
});
await aptos.waitForTransaction({ transactionHash: response.hash });
};
// Build
const transaction = await aptos.transaction.build.simple({
sender: sender.accountAddress,
data: {
function: "0x1234::module::my_function",
functionArguments: [arg1, arg2],
},
});
// Sign
const senderAuth = aptos.transaction.sign({ signer: sender, transaction });
// Submit
const response = await aptos.transaction.submit.simple({
transaction,
senderAuthenticator: senderAuth,
});
// Wait
await aptos.waitForTransaction({ transactionHash: response.hash });
async function getAptBalance(address: string): Promise<number> {
const resource = await aptos.getAccountResource({
accountAddress: address,
resourceType: "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>",
});
return Number(resource.coin.value);
}
const nfts = await aptos.getAccountOwnedTokens({ accountAddress: address });
function useTransactionStatus() {
const [status, setStatus] = useState<"idle" | "pending" | "success" | "error">("idle");
const submitTransaction = async (txn) => {
setStatus("pending");
try {
const response = await signAndSubmitTransaction(txn);
await aptos.waitForTransaction({ transactionHash: response.hash });
setStatus("success");
} catch {
setStatus("error");
}
};
return { status, submitTransaction };
}
try {
await signAndSubmitTransaction(txn);
} catch (error: any) {
if (error.code === 4001) {
console.error("User rejected");
} else if (error.message.includes("INSUFFICIENT_BALANCE")) {
console.error("Insufficient balance");
}
}
development
Whop platform expert for digital products, memberships, and community monetization. Covers memberships API, payments, courses, forums, webhooks, OAuth apps, and checkout integration. Build SaaS, course platforms, and gated communities. Triggers on Whop, memberships, digital products, course platform, community monetization, Whop API, license keys.
development
Token-Oriented Object Notation (TOON) format expert for 30-60% token savings on structured data. Auto-applies to arrays with 5+ items, tables, logs, API responses, database results. Supports tabular, inline, and expanded formats with comma/tab/pipe delimiters. Triggers on large JSON, data optimization, token reduction, structured data, arrays, tables, logs, metrics, TOON.
development
Plaid banking API expert for financial data integration. Covers Plaid Link, Auth (account/routing numbers), Transactions, Identity verification, Balance checking, and webhooks. Build fintech apps with bank connections, ACH transfers, and transaction history. Triggers on Plaid, banking API, Plaid Link, bank connection, ACH, financial data, transaction history.
development
Helius Solana RPC and API expert. High-performance infrastructure for Solana including RPC nodes, DAS API for NFTs/tokens, LaserStream real-time streaming, webhooks, Priority Fee API, Enhanced Transactions, and ZK Compression. Triggers on Helius, Solana RPC, DAS API, Digital Asset Standard, NFT metadata, Solana webhooks, priority fees, LaserStream, ZK compression.