Examples
Essential examples showing how to build data feeds with Grapevine.
Authentication
First, authenticate with your wallet:
import { GrapevineClient } from '@pinata/grapevine-sdk';
const grapevine = new GrapevineClient({
network: 'testnet',
privateKey: process.env.PRIVATE_KEY
});Creating a Data Feed
// Create your data feed
const feed = await grapevine.feeds.create({
name: 'API Data Feed',
description: 'Real-time market data for developers'
});Adding Entries to Your Feed
// Add structured data
await grapevine.entries.create(feed.id, {
content: JSON.stringify({
price: 42000,
timestamp: Date.now(),
symbol: 'BTC'
}),
title: 'Bitcoin Price Update',
mime_type: 'application/json',
is_free: false
});
// Add text content
await grapevine.entries.create(feed.id, {
content: 'Market analysis for today...',
title: 'Daily Analysis',
is_free: true
});React Integration
For React applications, use wagmi:
import { useGrapevine, useGrapevineReady } from '@pinata/grapevine-sdk/react';
import { useWalletClient } from 'wagmi';
function DataFeedApp() {
const { data: walletClient } = useWalletClient();
// Address is automatically extracted from walletClient
const grapevine = useGrapevine({
walletClient,
network: 'testnet'
});
const isReady = useGrapevineReady(grapevine);
const createFeed = async () => {
if (!grapevine || !isReady) return;
const feed = await grapevine.feeds.create({
name: 'My Data Feed',
description: 'Real-time API data'
});
};
return (
<button onClick={createFeed} disabled={!isReady}>
Create Data Feed
</button>
);
}See SDK Documentation for complete guides.