diff --git a/apps/portal/src/app/connect/pay/customization/connectbutton/page.mdx b/apps/portal/src/app/connect/pay/customization/connectbutton/page.mdx index f9763114ee0..851ad2684c0 100644 --- a/apps/portal/src/app/connect/pay/customization/connectbutton/page.mdx +++ b/apps/portal/src/app/connect/pay/customization/connectbutton/page.mdx @@ -86,6 +86,23 @@ If you'd like to prefill a purchase with a native token, you can set the chain w --- +## Preferred Provider + +You can specify which onramp provider to present to your users. By default, we choose a recommended provider based on the location of the user, KYC status, and currency. Please make sure your set provider is [available in your country](../onramp-providers). + +```tsx + +``` + +--- + ## Disable Payment Methods In some cases, you may only want to show users fiat or crypto payment options for your onchain goods or services. You can do this by setting either `buyWithCrypto` or `buyWithFiat` to `false`. diff --git a/apps/portal/src/app/connect/pay/customization/payembed/page.mdx b/apps/portal/src/app/connect/pay/customization/payembed/page.mdx index 38366d57ff4..136048ca23b 100644 --- a/apps/portal/src/app/connect/pay/customization/payembed/page.mdx +++ b/apps/portal/src/app/connect/pay/customization/payembed/page.mdx @@ -84,6 +84,21 @@ If you'd like to prefill a purchase with a native token, you can set the chain w --- +## Preferred Provider + +You can specify which onramp provider to present to your users. By default, we choose a recommended provider based on the location of the user, KYC status, and currency. Please make sure your set provider is [available in your country](../onramp-providers). + +```tsx + +``` + +--- + ## Disable Payment Methods In some cases, you may only want to show users fiat or crypto payment options for your onchain goods or services. You can do this by setting either `buyWithCrypto` or `buyWithFiat` to `false`. diff --git a/apps/portal/src/app/connect/pay/customization/send-transaction/page.mdx b/apps/portal/src/app/connect/pay/customization/send-transaction/page.mdx index 673607470b1..d2111141a80 100644 --- a/apps/portal/src/app/connect/pay/customization/send-transaction/page.mdx +++ b/apps/portal/src/app/connect/pay/customization/send-transaction/page.mdx @@ -20,7 +20,7 @@ Learn how to customize the Pay interface when executing a transaction with `useS You can enable users to select your token on a given chain by passing an array of `SupportedTokens`. Note that this array overrides all default tokens listed for that chain. ```tsx -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { supportedTokens: { "1": [ @@ -32,7 +32,7 @@ const { mutate: sendTransaction } = useSendTransaction({ }, ], }, - } + }, }); ``` @@ -47,7 +47,7 @@ For example, if you wanted users to only purchase Ethereum on Base network, you ```tsx import { base } from "thirdweb/chains"; -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { prefillBuy: { token: { @@ -63,19 +63,34 @@ const { mutate: sendTransaction } = useSendTransaction({ chain: false, // disable selecting buy chain }, }, - }}); + }, +}); ``` If you'd like to prefill a purchase with a native token, you can set the chain without passing a token: ```tsx -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { prefillBuy: { chain: base, }, - }} -); + }, +}); +``` + +--- + +## Preferred Provider + +You can specify which onramp provider to present to your users. By default, we choose a recommended provider based on the location of the user, KYC status, and currency. Please make sure your set provider is [available in your country](../onramp-providers). + +```tsx +const { mutate: sendTransaction } = useSendTransaction({ + payModal: { + preferredProvider: "STRIPE" | "KADO" | "TRANSAK", + }, +}); ``` --- @@ -87,21 +102,21 @@ In some cases, you may only want to show users fiat or crypto payment options fo #### Disable Buy With Crypto ```tsx -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { buyWithCrypto: false, - }} -); + }, +}); ``` #### Disable Buy With Fiat ```tsx -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { buyWithFiat: false, - }} -); + }, +}); ``` --- @@ -117,11 +132,11 @@ You can refer to our [`Theme`](/references/typescript/v5/Theme) page for a full #### Provided Themes ```tsx -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { theme: "dark", // or "light" - }} -); + }, +}); ``` #### Custom Theme @@ -130,7 +145,7 @@ const { mutate: sendTransaction } = useSendTransaction({ import { darkTheme } from 'thirdweb/react'; // Using custom theme -const { mutate: sendTransaction } = useSendTransaction({ +const { mutate: sendTransaction } = useSendTransaction({ payModal: { theme: darkTheme({ ... }, }} diff --git a/apps/portal/src/app/connect/pay/onramp-providers/page.mdx b/apps/portal/src/app/connect/pay/onramp-providers/page.mdx new file mode 100644 index 00000000000..021fe2ed9ec --- /dev/null +++ b/apps/portal/src/app/connect/pay/onramp-providers/page.mdx @@ -0,0 +1,24 @@ +import { createMetadata } from "@doc"; + +export const metadata = createMetadata({ + image: { + title: "thirdweb Pay - Onramp Providers", + icon: "thirdweb", + }, + title: "thirdweb Pay - Onramp Providers | thirdweb", + description: ".", +}); + +# Onramp Providers + +thirdweb Pay integrates with Stripe, Kado and Transak to power our onramp. By default, we choose a recommended provider based on the location of the user, KYC status, and currency. + +| Provider | Supported Countries | +| -------- | ------------------------------------------------------------------------------------------------------- | +| Transak | https://transak.notion.site/On-Ramp-Payment-Methods-Fees-Other-Details-b0761634feed4b338a69f4f186d906a5 | +| Kado | https://www.kado.money/supported-countries | +| Stripe | https://docs.stripe.com/crypto/onramp | + +## Choosing a Preferred Provider + +It is possible to specify a preferred onramp provider by setting the `preferredProvider` parameter in the ConnectButton, PayEmbed, or Headless Integration. Go to [customizations](../pay/customization/connectbutton#preferredProvider) for more detail, or checkout the [API Reference for preferredProvider](https://portal.thirdweb.com/references/typescript/v5/GetBuyWithFiatQuoteParams). diff --git a/apps/portal/src/app/connect/pay/supported-chains/page.mdx b/apps/portal/src/app/connect/pay/supported-chains copy/page.mdx similarity index 100% rename from apps/portal/src/app/connect/pay/supported-chains/page.mdx rename to apps/portal/src/app/connect/pay/supported-chains copy/page.mdx diff --git a/apps/portal/src/app/connect/sidebar.tsx b/apps/portal/src/app/connect/sidebar.tsx index 28e9e5eb82d..be0cf4dec38 100644 --- a/apps/portal/src/app/connect/sidebar.tsx +++ b/apps/portal/src/app/connect/sidebar.tsx @@ -296,6 +296,10 @@ export const sidebar: SideBar = { name: "Supported Chains", href: `${paySlug}/supported-chains`, }, + { + name: "Onramp Providers", + href: `${paySlug}/onramp-providers`, + }, { name: "Fee Sharing", diff --git a/apps/portal/src/app/insight/agents-and-llms/page.mdx b/apps/portal/src/app/insight/agents-and-llms/page.mdx new file mode 100644 index 00000000000..4dff85064db --- /dev/null +++ b/apps/portal/src/app/insight/agents-and-llms/page.mdx @@ -0,0 +1,411 @@ +import { createMetadata } from "@doc"; + +export const metadata = createMetadata({ + title: "thirdweb Insight For Agents & LLMs", + description: + "thirdweb Insight query documentation formatted for use with LLMs and agents", + image: { + title: "Insight", + icon: "insight", + }, +}); + +# For Agents & LLMs + +The schema below can be copied and pasted into the AI assistant of your choice. Feed this to your assistant, then ask your assistant to construct Insight queries on your behalf, asking it for certain onchain information. + +````markdown +# ATTENTION LLMs - API Usage Instructions + +## API URL + +https://{chain-id}.insight.thirdweb.com + +## Authentication + +The API supports three authentication methods: + +```typescript +// 1. Header Authentication +const headers = { + "x-client-id": "YOUR_CLIENT_ID", // thirdweb Client ID +}; + +// 2. Query Parameter +const url = "https://1.insight.thirdweb.com/v1/events?clientId=YOUR_CLIENT_ID"; + +// 3. Bearer Token +const headers = { + Authorization: "Bearer YOUR_JWT_TOKEN", +}; + +// Example using fetch with header auth +async function getEvents() { + const response = await fetch("https://1.insight.thirdweb.com/v1/events", { + headers: { + "x-client-id": "YOUR_CLIENT_ID", + }, + }); + return await response.json(); +} +``` + +## Core Concepts + +### Chain IDs + +The API supports the following chain IDs (with 1 as default): + +```typescript +type ChainId = + | "1" + | "2039" + | "30" + | "98865" + | "42793" + | "1952959480" + | "98864" + | "466" + | "37714555429" + | "8008135" + | "55244" + | "42019" + | "8453" + | "480" + | "84532" + | "888888888" + | "43113" + | "19934" + | "7897" + | "2040" + | "37111" + | "33139" + | "80002" + | "8333" + | "660279" + | "42161" + | "11155111" + | "421614" + | "994873017" + | "42026" + | "43114" + | "1946" + | "31" + | "41455" + | "1993" + | "98985"; + +// Example: Using a specific chain +const chainId = "1"; // Ethereum Mainnet +const baseUrl = `https://${chainId}.insight.thirdweb.com`; +``` + +### Base Response Structure + +```typescript +interface BaseResponse { + data: T[]; + meta: { + chain_id: number; // Required + page: number; // Required + limit: number; // Required + total_items: number; // Required + total_pages: number; // Required + address?: string; // Optional + signature?: string; // Optional + } +} + +// Example response from getting events +{ + "data": [ + { + "chain_id": 1, + "block_number": "17859301", + "transaction_hash": "0x123...", + "address": "0x456...", + "data": "0x789...", + "topics": ["0xabc..."] + } + ], + "meta": { + "chain_id": 1, + "page": 0, + "limit": 20, + "total_items": 150, + "total_pages": 8 + } +} +``` + +## API Examples + +### Events API + +```typescript +// 1. Get All Events +async function getAllEvents() { + const response = await fetch("https://1.insight.thirdweb.com/v1/events", { + headers: { "x-client-id": "YOUR_CLIENT_ID" }, + }); + return await response.json(); +} + +// 2. Get Contract Events with Filtering +async function getContractEvents(contractAddress: string) { + const params = new URLSearchParams({ + filter_block_number_gte: "17000000", + sort_by: "block_timestamp", + sort_order: "desc", + limit: "50", + }); + + const url = `https://1.insight.thirdweb.com/v1/events/${contractAddress}?${params}`; + const response = await fetch(url, { + headers: { "x-client-id": "YOUR_CLIENT_ID" }, + }); + return await response.json(); +} +``` + +### Token Balance API + +```typescript +// 1. Get ERC20 Balances +async function getERC20Balances(ownerAddress: string) { + const response = await fetch( + `https://1.insight.thirdweb.com/v1/tokens/erc20/${ownerAddress}`, + { headers: { "x-client-id": "YOUR_CLIENT_ID" } }, + ); + const data = await response.json(); + // Example response: + // { + // "data": [ + // { + // "tokenAddress": "0x123...", + // "balance": "1000000000000000000" + // } + // ] + // } + return data; +} + +// 2. Get NFT Balances +async function getNFTBalances(ownerAddress: string) { + const response = await fetch( + `https://1.insight.thirdweb.com/v1/tokens/erc721/${ownerAddress}`, + { headers: { "x-client-id": "YOUR_CLIENT_ID" } }, + ); + const data = await response.json(); + // Example response: + // { + // "data": [ + // { + // "collectionAddress": "0x456...", + // "tokenId": "1", + // "balance": "1" + // } + // ] + // } + return data; +} +``` + +### Using Filters + +```typescript +// Example: Get events with complex filtering +async function getFilteredEvents() { + const params = new URLSearchParams({ + // Block filters + filter_block_number_gte: "17000000", + filter_block_number_lte: "17859301", + + // Time filters + filter_block_timestamp_gte: "1715222400", + + // Transaction filters + filter_from_address: "0x123...", + filter_value_gte: "1000000000000000000", // 1 ETH + + // Pagination + page: "0", + limit: "20", + + // Sorting + sort_by: "block_timestamp", + sort_order: "desc", + }); + + const response = await fetch( + `https://1.insight.thirdweb.com/v1/events?${params}`, + { headers: { "x-client-id": "YOUR_CLIENT_ID" } }, + ); + return await response.json(); +} +``` + +### Error Handling + +```typescript +async function safeApiCall() { + try { + const response = await fetch("https://1.insight.thirdweb.com/v1/events", { + headers: { "x-client-id": "YOUR_CLIENT_ID" }, + }); + + if (!response.ok) { + const errorData = await response.json(); + // Example error response: + // { "error": "Invalid client ID" } + throw new Error(errorData.error); + } + + return await response.json(); + } catch (error) { + console.error("API Error:", error.message); + throw error; + } +} +``` + +## API Reference + +### Events API + +1. **Get All Events** + +```typescript +GET / v1 / events; +``` + +2. **Get Contract Events** + +```typescript +GET /v1/events/:contractAddress +``` + +3. **Get Specific Event Type** + +```typescript +GET /v1/events/:contractAddress/:signature +``` + +### Transactions API + +1. **Get All Transactions** + +```typescript +GET / v1 / transactions; +``` + +2. **Get Contract Transactions** + +```typescript +GET /v1/transactions/:contractAddress +``` + +3. **Get Specific Transaction Type** + +```typescript +GET /v1/transactions/:contractAddress/:signature +``` + +### Token Balance API + +1. **ERC20 Balances** + +```typescript +GET /v1/tokens/erc20/:ownerAddress + +interface ERC20Response { + data: { + tokenAddress: string; // Required + balance: string; // Required + }[]; +} +``` + +2. **ERC721 & ERC1155 Balances** + +```typescript +GET /v1/tokens/erc721/:ownerAddress +GET /v1/tokens/erc1155/:ownerAddress + +interface TokenBalance { + data: { + collectionAddress: string; // Required + tokenId: string; // Required + balance: string; // Required + }[]; +} +``` + +## Query Parameters + +### Common Parameters + +```typescript +interface CommonQueryParams { + page?: number; // Default: 0 + limit?: number; // Default: 20, must be > 0 + sort_by?: "block_number" | "block_timestamp" | "transaction_index"; + sort_order?: "asc" | "desc"; + group_by?: string; + aggregate?: string[]; +} +``` + +### Filter Types + +1. **Block Filters** + +```typescript +interface BlockFilters { + filter_block_number?: number; // Example: 1000000 + filter_block_number_gte?: number; // Example: 1000000 + filter_block_number_gt?: number; // Example: 1000000 + filter_block_number_lte?: number; // Example: 1000000 + filter_block_number_lt?: number; // Example: 1000000 + filter_block_hash?: string; // Example: "0x3a1fba5..." +} +``` + +2. **Time Filters** + +```typescript +interface TimeFilters { + filter_block_timestamp?: number; // Example: 1715222400 + filter_block_timestamp_gte?: number; // Example: 1715222400 + filter_block_timestamp_gt?: number; // Example: 1715222400 + filter_block_timestamp_lte?: number; // Example: 1715222400 + filter_block_timestamp_lt?: number; // Example: 1715222400 +} +``` + +3. **Transaction Filters** + +```typescript +interface TransactionFilters { + filter_transaction_index?: number; + filter_transaction_hash?: string; + filter_from_address?: string; + filter_value?: number; + filter_gas_price?: number; + filter_gas?: number; + // Additional gte, gt, lte, lt variants for numeric fields +} +``` + +## Error Handling + +All endpoints return standard error responses for 400 and 500 status codes: + +```typescript +// 400 Bad Request +// 500 Internal Server Error +interface ErrorResponse { + error: string; // Required +} +``` +```` diff --git a/apps/portal/src/app/insight/get-started/page.mdx b/apps/portal/src/app/insight/get-started/page.mdx index a1d59d3341f..93b27994eac 100644 --- a/apps/portal/src/app/insight/get-started/page.mdx +++ b/apps/portal/src/app/insight/get-started/page.mdx @@ -2,12 +2,11 @@ import { createMetadata } from "@doc"; export const metadata = createMetadata({ title: "Getting started with Insight | thirdweb Infrastructure", - description: - "Learn how to use thirdweb Insight to query blockchain events", - image: { - title: "Insight", - icon: "insight", - }, + description: "Learn how to use thirdweb Insight to query blockchain events", + image: { + title: "Insight", + icon: "insight", + }, }); # Get Started @@ -25,6 +24,7 @@ https://.insight.thirdweb.com ``` ## Basic Usage + ```typescript const getUsdtTransfers = async () => { try { @@ -45,96 +45,96 @@ Once you execute the query above you will receive a result similar to this: ```json { - "meta": { - "chain_id": 1, - "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", - "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "page": 0, - "limit": 5, - "total_items": 5, - "total_pages": 0 - }, - "data": [ - { - "chain_id": 1, - "block_number": 14705663, - "block_hash": "0x8f7014ff29e3ea83ee03354bd968741d01b92d4c3ddf02bfa5121465b8240736", - "block_timestamp": 1651594686, - "transaction_hash": "0xf5009000b57b761900010bf7f365c12ce34438ac3afdef9778b46055c26353b3", - "transaction_index": 193, - "log_index": 278, - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000b8418cdb539069e075b4c6c6675114879ffd441b", - "0x000000000000000000000000515ea78a0ff34aef46a5e323d759935e05de4827" - ] - }, - { - "chain_id": 1, - "block_number": 14705664, - "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", - "block_timestamp": 1651594701, - "transaction_hash": "0x0999f86751fe5b8f2bc5446e38abf3f0e01ee1c7ff5ce6288abbea506ac3cebf", - "transaction_index": 41, - "log_index": 120, - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "data": "0x0000000000000000000000000000000000000000000000000000000014dc9380", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a", - "0x0000000000000000000000000f69fce36dc680512d836526fc1abb9cd6bdcdd4" - ] - }, - { - "chain_id": 1, - "block_number": 14705664, - "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", - "block_timestamp": 1651594701, - "transaction_hash": "0x0f25b357155dca3186700e69a7586ee0153f1d7d75304a158aab9be210b31a56", - "transaction_index": 72, - "log_index": 133, - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "data": "0x0000000000000000000000000000000000000000000000000000000643e6c140", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007b29bee9cb744122edcd7e8223efcdf8d8d8e0a4", - "0x0000000000000000000000001724aabcef350d3f3433804e6167d4c4137aab01" - ] - }, - { - "chain_id": 1, - "block_number": 14705664, - "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", - "block_timestamp": 1651594701, - "transaction_hash": "0x10da03bea7828722c92c86704522c7e1ce7dd2947d633ec6c1fb36680cb256e5", - "transaction_index": 145, - "log_index": 229, - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "data": "0x00000000000000000000000000000000000000000000000000000000163d3a0d", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000056eddb7aa87536c09ccc2793473599fd21a8b17f", - "0x0000000000000000000000002b38e18192a442ed923addb4739e0a7724945d3c" - ] - }, - { - "chain_id": 1, - "block_number": 14705664, - "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", - "block_timestamp": 1651594701, - "transaction_hash": "0x20967f489b5237c0c6ffcbf7afcd921303e0db9e49382f9dc37809874e674b8b", - "transaction_index": 188, - "log_index": 295, - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "data": "0x0000000000000000000000000000000000000000000000000000000011b9e2b6", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000003cd751e6b0078be393132286c442345e5dc49699", - "0x0000000000000000000000000e6eeff72188094c78b2478b693bbdbf9b13aaac" - ] - } - ] + "meta": { + "chain_id": 1, + "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7", + "signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "page": 0, + "limit": 5, + "total_items": 5, + "total_pages": 0 + }, + "data": [ + { + "chain_id": 1, + "block_number": 14705663, + "block_hash": "0x8f7014ff29e3ea83ee03354bd968741d01b92d4c3ddf02bfa5121465b8240736", + "block_timestamp": 1651594686, + "transaction_hash": "0xf5009000b57b761900010bf7f365c12ce34438ac3afdef9778b46055c26353b3", + "transaction_index": 193, + "log_index": 278, + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "data": "0x0000000000000000000000000000000000000000000000000000000005f5e100", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b8418cdb539069e075b4c6c6675114879ffd441b", + "0x000000000000000000000000515ea78a0ff34aef46a5e323d759935e05de4827" + ] + }, + { + "chain_id": 1, + "block_number": 14705664, + "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", + "block_timestamp": 1651594701, + "transaction_hash": "0x0999f86751fe5b8f2bc5446e38abf3f0e01ee1c7ff5ce6288abbea506ac3cebf", + "transaction_index": 41, + "log_index": 120, + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "data": "0x0000000000000000000000000000000000000000000000000000000014dc9380", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000005041ed759dd4afc3a72b8192c143f72f4724081a", + "0x0000000000000000000000000f69fce36dc680512d836526fc1abb9cd6bdcdd4" + ] + }, + { + "chain_id": 1, + "block_number": 14705664, + "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", + "block_timestamp": 1651594701, + "transaction_hash": "0x0f25b357155dca3186700e69a7586ee0153f1d7d75304a158aab9be210b31a56", + "transaction_index": 72, + "log_index": 133, + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "data": "0x0000000000000000000000000000000000000000000000000000000643e6c140", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007b29bee9cb744122edcd7e8223efcdf8d8d8e0a4", + "0x0000000000000000000000001724aabcef350d3f3433804e6167d4c4137aab01" + ] + }, + { + "chain_id": 1, + "block_number": 14705664, + "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", + "block_timestamp": 1651594701, + "transaction_hash": "0x10da03bea7828722c92c86704522c7e1ce7dd2947d633ec6c1fb36680cb256e5", + "transaction_index": 145, + "log_index": 229, + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "data": "0x00000000000000000000000000000000000000000000000000000000163d3a0d", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000056eddb7aa87536c09ccc2793473599fd21a8b17f", + "0x0000000000000000000000002b38e18192a442ed923addb4739e0a7724945d3c" + ] + }, + { + "chain_id": 1, + "block_number": 14705664, + "block_hash": "0x916d67589f2bc37600faf055309fd9f654d0c0030df35d31c04e22fef8d24ff2", + "block_timestamp": 1651594701, + "transaction_hash": "0x20967f489b5237c0c6ffcbf7afcd921303e0db9e49382f9dc37809874e674b8b", + "transaction_index": 188, + "log_index": 295, + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "data": "0x0000000000000000000000000000000000000000000000000000000011b9e2b6", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003cd751e6b0078be393132286c442345e5dc49699", + "0x0000000000000000000000000e6eeff72188094c78b2478b693bbdbf9b13aaac" + ] + } + ] } ``` diff --git a/apps/portal/src/app/insight/sidebar.tsx b/apps/portal/src/app/insight/sidebar.tsx index c3f6a9a76fd..805a4e1fd43 100644 --- a/apps/portal/src/app/insight/sidebar.tsx +++ b/apps/portal/src/app/insight/sidebar.tsx @@ -13,6 +13,10 @@ export const sidebar: SideBar = { name: "Get Started", href: `${insightSlug}/get-started`, }, + { + name: "For AI Agents & LLMs", + href: `${insightSlug}/agents-and-llms`, + }, { name: "Supported Chains", href: `${insightSlug}/supported-chains`,