Skip to content

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.