Skip to main content

GraphQL NPM Package

The Intuition GraphQL package provides a type-safe interface for interacting with the Intuition API. It functions as the core data fetching layer, supplying generated types and React Query hooks for easy integration with the semantic knowledge graph.

Key Features​

  • React Query hooks for data fetching
  • Type-safe data fetching
  • Error handling
  • Loading state
  • Pagination
  • Sorting
  • Filtering

Installation​

Install the package using your preferred package manager:

npm install @0xintuition/graphql

Quick Start​

1. Client Configuration (Optional)​

Configure the GraphQL client at the root of your application:

import { configureClient, API_URL_DEV, API_URL_PROD, API_URL_LOCAL } from '@0xintuition/graphql'

// Configure the GraphQL client with desired API URL
configureClient({
apiUrl: API_URL_LOCAL, // For local development
})

Available API URLs:

  • API_URL_PROD: https://testnet.intuition.sh/v1/graphql (default)
  • API_URL_DEV: https://testnet.intuition.sh/v1/graphql
  • API_URL_LOCAL: http://localhost:8080/v1/graphql

If you omit this configuration, the package defaults to API_URL_PROD.

2. Server Client Usage​

For server-side operations:

import { createServerClient } from '@0xintuition/graphql'

// Basic usage (most common)
const client = createServerClient({})

// With optional authentication token (rarely needed)
const clientWithAuth = createServerClient({
token: 'your-auth-token'
})

3. Using Generated Hooks​

Import and use the generated React Query hooks:

import { useGetStatsQuery } from '@0xintuition/graphql'

function StatsComponent() {
const { data, isLoading, error } = useGetStatsQuery()

if (isLoading) return <div>Loading...</div>
if (error) return <div>Error: {error.message}</div>

return <div>{/* Render stats data */}</div>
}
import { useAtomsQuery, useTriplesQuery, useUserPositionsQuery } from '@0xintuition/graphql'

function MyComponent() {
// Query atoms
const { data: atoms, isLoading: atomsLoading } = useAtomsQuery({
variables: { first: 10 }
})

// Query triples
const { data: triples, isLoading: triplesLoading } = useTriplesQuery({
variables: { first: 10 }
})

// Query user positions
const { data: positions } = useUserPositionsQuery({
variables: { userAddress: '0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6' }
})

if (atomsLoading || triplesLoading) {
return <div>Loading...</div>
}

return (
<div>
<h2>Atoms ({atoms?.atoms?.length || 0})</h2>
{atoms?.atoms?.map(atom => (
<div key={atom.id}>
<strong>{atom.uri}</strong> - {atom.totalShares} shares
</div>
))}

<h2>Triples ({triples?.triples?.length || 0})</h2>
{triples?.triples?.map(triple => (
<div key={triple.id}>
{triple.subject.uri} - {triple.predicate.uri} - {triple.object.uri}
</div>
))}
</div>
)
}

Available React Hooks​

The following groups correspond to the query documents in the src/queries subdirectory of the package. Hook names are generated from each document and follow the use<Name>Query convention. The complete and canonical list may be found in the directory: packages/graphql/src/queries

Accounts​

Get by ID

  • useAccountByIdQuery

Search & Filter

  • useAccountsQuery

Atoms​

Get by ID

  • useAtomByIdQuery
  • useGetAtomQuery

Search & Filter

  • useAtomsQuery
  • useGetAtomsQuery

Claims​

Get by ID

  • useClaimByIdQuery

Search & Filter

  • useClaimsQuery

Events​

Get by ID

  • useEventByIdQuery

Search & Filter

  • useEventsQuery

Follows​

Get by ID

  • useFollowByIdQuery

Search & Filter

  • useFollowsQuery

Lists​

Get by ID

  • useListByIdQuery

Search & Filter

  • useListsQuery

Points​

Get by ID

  • usePointByIdQuery

Search & Filter

  • usePointsQuery

Positions​

Get by ID

  • usePositionByIdQuery

Search & Filter

  • usePositionsQuery
  • useUserPositionsQuery

Signals​

Get by ID

  • useSignalByIdQuery

Search & Filter

  • useSignalsQuery
  • useGetSignalsQuery

Stats​

Get

  • useGetStatsQuery

Search & Filter

  • useStatsQuery

Tags​

Get by ID

  • useTagByIdQuery

Search & Filter

  • useTagsQuery

Triples​

Get by ID

  • useTripleByIdQuery

Search & Filter

  • useTriplesQuery

Vaults​

Get by ID

  • useVaultByIdQuery

Search & Filter

  • useVaultsQuery

These hooks are generated via GraphQL Code Generator and may expand over time as new documents are added. See the package source below for the current and authoritative list.

Source Code​

The GraphQL package source code is available on GitHub: intuition-ts/packages/graphql