2.5 KiB
2.5 KiB
Lockdrop Watcher API
The Lockdrop Watcher monitors the Zenith lockdrop contract on Ethereum, tracking participant deposits and lock commitments during Stage 0.
GraphQL Endpoint: https://lockdrop-watcher.zenith-test.tlon.systems/graphql
Query Deposit Information
query GetDeposit($address: String!) {
deposit(address: $address) {
address
points
lockDuration
timestamp
blockNumber
transactionHash
}
}
Query All Deposits
query GetAllDeposits {
deposits(orderBy: timestamp, orderDirection: desc) {
address
points
lockDuration
timestamp
}
}
Query Locked Points
query GetLockedPoints($pointId: Int!) {
lockedPoint(id: $pointId) {
pointId
owner
lockDuration
lockedAt
unlocksAt
withdrawn
}
}
Using the GraphQL API
With curl
# Query Lockdrop Watcher
curl -X POST https://lockdrop-watcher.zenith-test.tlon.systems/graphql \
-H "Content-Type: application/json" \
-d '{
"query": "query { deposits { address points lockDuration } }"
}'
With JavaScript/TypeScript
const query = `
query GetDeposit($address: String!) {
deposit(address: $address) {
points
lockDuration
timestamp
}
}
`;
const variables = { address: "0x..." };
const response = await fetch('https://lockdrop-watcher.zenith-test.tlon.systems/graphql', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query, variables })
});
const data = await response.json();
With GraphQL Client Libraries
import { GraphQLClient } from 'graphql-request';
const client = new GraphQLClient(
'https://lockdrop-watcher.zenith-test.tlon.systems/graphql'
);
const query = `
query GetDeposit($address: String!) {
deposit(address: $address) {
points lockDuration timestamp
}
}
`;
const data = await client.request(query, { address: '0x...' });
Rate Limiting and Best Practices
- Rate Limits: Public watcher endpoints have rate limiting in place. For production applications, consider running your own watcher instances.
- Pagination: Use pagination parameters for queries that return large result sets.
- Caching: Cache frequently accessed data to reduce API load.
- Error Handling: Implement proper error handling and retry logic for network failures.
!!! note "Watcher Documentation" For more information about the watcher architecture and deployment, see the Watchers documentation.