---
name: skills.onesource.io
description: skills.onesource.io provides read-only Ethereum and EVM blockchain data via RPC-backed endpoints. It covers address classification (EOA vs contract, token standard detection, proxy detection), ENS name resolution, block and transaction lookups, and network state queries (chain ID, block number, gas price, nonce).
host: skills.onesource.io
---

# skills.onesource.io

OneSource is a single-host aggregation of Ethereum and Base chain RPC primitives exposed as discrete skills. It targets agents that need to inspect on-chain state — contracts, transactions, blocks, ENS names — without managing their own RPC infrastructure. It does not provide token prices, balances, ABI decoding, source code, or write operations.

## When to use this host

Use skills.onesource.io when an agent needs read-only Ethereum or Base chain RPC data: contract classification, proxy detection, ENS resolution, nonce retrieval, block/transaction lookups, or network state. It is well-suited for pre-flight transaction checks and contract introspection workflows. Do not use it for: token prices or market data (use a price feed API), token balances or portfolio data (use a balance indexer), ABI definitions or source code (use Etherscan or Sourcify), write operations or transaction submission, non-EVM chains, or bulk/batch operations across many addresses. The proxy detection skills cover both generic EVM and Base-specific endpoints; for non-Base chains use detect-evm-proxy-contract or lookup-chain-proxy rather than fetch-chain-address-proxy-info.

## Capabilities

### Network State

Establishes current Ethereum network context including chain ID, block height, and gas price. Used to bootstrap or pre-flight any transaction workflow.

- **`fetch-ethereum-chain-id`** — Queries the upstream Ethereum RPC node via eth_chainId and returns the EIP-155 chain ID in hex format, confirming which chain the backend is serving.
- **`fetch-ethereum-block-number`** — Returns the current Ethereum mainnet block height as a hex-encoded value via a live eth_blockNumber RPC call with no caching.
- **`fetch-ethereum-network-info`** — Fetches Ethereum chain ID, network version, latest block number, and gas price in a single batched RPC call (eth_chainId + eth_blockNumber + eth_gasPrice).

### Block Data

Retrieves full block metadata, transaction hash lists, and header fields for a specific block or the current chain tip, including the pending block.

- **`fetch-latest-blockchain-block`** — Returns the latest block from the chain including full block metadata, all transaction hashes, and withdrawal details.
- **`fetch-chain-block-details`** — Returns full blockchain block data for a given block identifier, including header fields (hash, miner, gas, timestamps), transaction hashes array, and withdrawals root.
- **`fetch-ethereum-pending-block`** — Returns the current pending Ethereum block and its full transaction list as seen by the upstream RPC node via eth_getBlockByNumber("pending").

### Transaction Lookup

Fetches confirmed transaction details and receipts by hash, covering sender, recipient, value, gas, execution status, and event logs.

- **`fetch-chain-transaction`** — Returns raw blockchain transaction data and receipt for a given transaction hash, including sender, recipient, gas, block info, and execution status.
- **`fetch-chain-transaction-receipt`** — Returns the on-chain transaction receipt for a given transaction hash, including status, gas usage, block details, logs, and sender/receiver addresses.

### Account State

Returns per-address on-chain state needed before constructing or submitting a transaction, specifically the current nonce.

- **`fetch-chain-nonce`** — Returns the current transaction nonce for a given blockchain address, enabling correct transaction sequencing and account state inspection.
- **`fetch-onchain-nonce`** — Returns the current transaction nonce for a given blockchain address, enabling correct transaction sequencing and signing workflows.

### ENS Resolution

Resolves ENS names to their on-chain Ethereum addresses and verifies forward/reverse resolution status via the ENS resolver contract.

- **`fetch-ens-chain-details`** — Resolves an ENS name to its on-chain address, resolver contract address, and forward/reverse resolution flags.
- **`fetch-ens-name-resolution`** — Resolves an Ethereum ENS name to its on-chain address, resolver contract address, and forward/reverse resolution status.
- **`fetch-ens-name-details`** — Resolves an ENS name to its on-chain Ethereum address, resolver contract address, and forward/reverse resolution status.

### Contract Classification

Determines whether an address is a smart contract, which ERC token standards it implements (ERC-20, ERC-721, ERC-1155, ERC-165), and retrieves its on-chain name and symbol.

- **`fetch-contract-details`** — Returns on-chain contract metadata for a given address, including whether it is a contract and which ERC token standards it implements.
- **`fetch-contract-metadata`** — Returns on-chain metadata for an Ethereum contract address, including contract status, bytecode length, token name, symbol, and detected ERC interface support (ERC20, ERC721, ERC1155, ERC165).
- **`fetch-onchain-contract-metadata`** — Returns contract metadata for an Ethereum address including name, symbol, code size, token standard flags (ERC-20/721/1155), and supported interfaces.

### Bytecode Retrieval

Fetches raw deployed EVM bytecode and code length for an address, enabling contract verification, decompilation, or EOA/contract distinction.

- **`fetch-chain-code`** — Returns the on-chain bytecode, code length, and contract status for a given blockchain address.
- **`fetch-chain-contract-code`** — Returns on-chain contract bytecode and address metadata for a given Ethereum-compatible contract address.
- **`fetch-contract-bytecode`** — Returns the deployed EVM bytecode and address metadata for a given Ethereum contract address by querying on-chain code.

### Proxy Detection

Identifies whether a contract address is a proxy, returns the proxy pattern type, and resolves the underlying implementation address.

- **`fetch-chain-address-proxy-info`** — Returns proxy and contract classification data for a given Base chain address, indicating whether it is a proxy contract and its proxy type.
- **`lookup-chain-proxy`** — Checks whether a given blockchain address is a proxy contract and returns its proxy type, implementation address, and contract status.
- **`detect-evm-proxy-contract`** — Checks whether an EVM contract address is a proxy, returning its proxy type, implementation address, and contract status.

## Workflows

### Transaction Pre-Flight Check

*Use when an agent needs to prepare and validate all on-chain parameters before constructing and signing an Ethereum transaction.*

1. **`fetch-ethereum-network-info`** — Retrieve chain ID, current block number, and gas price in one call to establish network context.
2. **`fetch-onchain-nonce`** — Fetch the current nonce for the sender address to ensure correct transaction sequencing.

### Contract Introspection

*Use when an agent needs to fully characterize an unknown contract address before interacting with it.*

1. **`fetch-contract-metadata`** — Determine if the address is a contract, identify its token standard, and retrieve name and symbol.
2. **`detect-evm-proxy-contract`** — Check whether the contract is a proxy and resolve the underlying implementation address if so.
3. **`fetch-contract-bytecode`** — Retrieve raw bytecode for further analysis or verification if needed.

### ENS-to-Contract Inspection

*Use when an agent receives an ENS name and needs to resolve it to an address and then characterize the contract at that address.*

1. **`fetch-ens-name-resolution`** — Resolve the ENS name to its on-chain Ethereum address.
2. **`fetch-contract-metadata`** — Classify the resolved address as a contract or EOA and identify its token standard.
3. **`detect-evm-proxy-contract`** — Determine if the resolved contract is a proxy and find its implementation address.

### Transaction Confirmation Audit

*Use when an agent needs to verify that a submitted transaction was mined successfully and audit its gas consumption and block placement.*

1. **`fetch-chain-transaction`** — Retrieve full transaction details including sender, recipient, value, and block number.
2. **`fetch-chain-transaction-receipt`** — Confirm execution status, gas used, and event logs for the same transaction hash.

### Block Transaction Enumeration

*Use when an agent needs to enumerate and inspect transactions in the most recent confirmed block.*

1. **`fetch-latest-blockchain-block`** — Retrieve the current chain tip block and its list of transaction hashes.
2. **`fetch-chain-transaction`** — Look up details for individual transaction hashes extracted from the block.

## Skill reference

### `fetch-ens-chain-details`

**ENS Chain Lookup** — Resolves an ENS name to its on-chain address, resolver contract address, and forward/reverse resolution flags.

*Use when:* Use when an agent needs to resolve an ENS name to its Ethereum address and verify forward/reverse resolution status before interacting with a wallet or contract.

*Not for:* Do not use for reverse ENS lookups (address-to-name); this endpoint returns is_reverse=false for standard names. Not suitable for bulk ENS resolution.

**Inputs:**

- `ens_name` (string, required) — The ENS name to resolve, passed as the final path segment of the URL (e.g. swollen.eth).

**Returns:** Returns a data object with the ENS name, resolved Ethereum address, resolver contract address, and forward/reverse resolution flags, plus request metadata.

**Example:** `GET https://skills.onesource.io/api/chain/ens/swollen.eth`

---

### `fetch-contract-details`

**Contract Lookup** — Returns on-chain contract metadata for a given address, including whether it is a contract and which ERC token standards it implements.

*Use when:* Use when an agent needs to determine if a blockchain address is a smart contract and which token standards (ERC-20, ERC-721, ERC-1155, ERC-165) it supports before interacting with it.

*Not for:* Do not use for fetching token balances, transaction history, or ABI data; use a dedicated blockchain explorer or indexer API for those purposes.

**Inputs:**

- `address` (string, required) — The blockchain address to look up contract details for. Passed as a path parameter in the URL.

**Returns:** Returns a data object with the address, is_contract flag, code_length, and four ERC standard boolean flags, plus a meta object with the endpoint path and request_id.

**Example:** `GET https://skills.onesource.io/api/chain/contract/0x402feee072d655b85e08f1751af9ddbcd249521f`

---

### `fetch-chain-code`

**Chain Code Lookup** — Returns the on-chain bytecode, code length, and contract status for a given blockchain address.

*Use when:* Use when an agent needs to determine whether a blockchain address is a smart contract or an EOA, or needs to retrieve the raw bytecode deployed at that address.

*Not for:* Do not use for ABI decoding, source code retrieval, or contract verification — this endpoint returns raw bytecode only, not human-readable source.

**Inputs:**

- `address` (string, required) — The blockchain address to look up on-chain code for. Passed as a path parameter in the URL.

**Returns:** Returns data.address, data.code ('0x' for EOAs), data.code_length, and data.is_contract (false for non-contracts), plus meta fields for endpoint and request_id.

**Example:** `GET https://skills.onesource.io/api/chain/code/0x402feee072d655b85e08f1751af9ddbcd249521f`

---

### `fetch-chain-address-proxy-info`

**Chain Address Proxy Info** — Returns proxy and contract classification data for a given Base chain address, indicating whether it is a proxy contract and its proxy type.

*Use when:* Use when an agent needs to determine whether a Base chain address is a proxy contract, what proxy type it uses, or whether it is a contract at all.

*Not for:* Do not use for non-Base chain addresses; this endpoint is specific to the Base (eip155:8453) network. Not suitable for fetching token balances, transaction history, or ABI data.

**Inputs:**

- `address` (string, required) — The Base chain address to look up proxy and contract classification data for.

**Returns:** Returns a data object with address, is_proxy (boolean), proxy_type (string), and is_contract (boolean), plus a meta object with the endpoint path and a unique request_id.

**Example:** `GET https://skills.onesource.io/api/chain/proxy/0x402feee072d655b85e08f1751af9ddbcd249521f`

---

### `fetch-chain-nonce`

**Chain Nonce Lookup** — Returns the current transaction nonce for a given blockchain address, retrieved from on-chain state.

*Use when:* Use when an agent needs the current nonce for a blockchain address before constructing or signing a transaction, to ensure correct sequencing and avoid nonce conflicts.

*Not for:* Do not use for fetching account balances, token holdings, or transaction history; use dedicated balance or explorer APIs instead.

**Inputs:**

- `address` (string, required) — The blockchain address for which to retrieve the current nonce. Passed as a path parameter in the URL.

**Returns:** Returns a JSON object with data.nonce as a hex string (e.g. "0x0") and meta fields including the endpoint path and a unique request_id.

**Example:** `GET https://skills.onesource.io/api/chain/nonce/0x402feee072d655b85e08f1751af9ddbcd249521f`

---

### `fetch-contract-metadata`

**Contract Metadata Lookup** — Returns on-chain metadata for an Ethereum contract address, including contract status, bytecode length, token name, symbol, and detected ERC interface support (ERC20, ERC721, ERC1155, ERC165).

*Use when:* Use when an agent needs to identify whether an Ethereum address is a contract, determine its token standard (ERC20/ERC721/ERC1155), or retrieve its on-chain name and symbol without querying a node directly.

*Not for:* Do not use for EOA (externally owned account) wallet lookups or off-chain token metadata such as images or descriptions; use a token metadata or NFT media API instead.

**Inputs:**

- `address` (string, required) — Ethereum contract address to look up, supplied as the last path segment of the URL.

**Returns:** Returns a data object with the contract address, is_contract flag, code_length, token name and symbol, boolean ERC standard flags (ERC20/ERC721/ERC1155/ERC165), and an interfaces array listing detected standards.

**Example:** `GET https://skills.onesource.io/api/chain/contract/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d`

---

### `fetch-chain-contract-code`

**Chain Contract Code Lookup** — Returns on-chain contract bytecode and address metadata for a given Ethereum-compatible contract address.

*Use when:* Use when an agent needs to verify whether a blockchain address is a deployed contract and retrieve its raw bytecode for analysis, verification, or decompilation.

*Not for:* Do not use for fetching token balances, transaction history, or ABI definitions; use dedicated balance or ABI lookup endpoints instead.

**Inputs:**

- `address` (string, required) — The Ethereum-compatible contract address to look up, embedded as the last path segment in the URL.

**Returns:** Returns a data object containing the queried address and its full hex-encoded on-chain bytecode string.

**Example:** `GET https://skills.onesource.io/api/chain/code/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48`

---

### `lookup-chain-proxy`

**Chain Proxy Lookup** — Checks whether a given blockchain address is a proxy contract and returns its proxy type, implementation address, and contract status.

*Use when:* Use when an agent needs to determine if a blockchain address is a proxy contract, identify the proxy type (e.g. slot0), and resolve the underlying implementation address before interacting with or analyzing a smart contract.

*Not for:* Do not use for fetching token balances, transaction history, or ABI data; use a dedicated blockchain data API for those purposes.

**Inputs:**

- `address` (string, required) — The blockchain contract address to check for proxy status. Supplied as a path parameter in the URL.

**Returns:** Returns a data object with the queried address, is_proxy flag, proxy_type (e.g. slot0), implementation address, and is_contract flag, plus a meta object with the endpoint path and request_id.

**Example:** `GET https://skills.onesource.io/api/chain/proxy/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48`

---

### `fetch-chain-block-details`

**Chain Block Details** — Returns full blockchain block data for a given block identifier, including header fields (hash, miner, gas, timestamps), transaction hashes array, and withdrawals root.

*Use when:* Use when an agent needs to inspect a specific block on-chain, retrieve its header metadata, enumerate transaction hashes within the block, or perform chain analytics on block-level data.

*Not for:* Do not use for fetching individual transaction details or receipts; use a transaction lookup endpoint instead. Not suitable for real-time streaming of new blocks.

**Inputs:**

- `block` (string, required) — Block identifier as a hex-encoded block number (e.g. 0x1212D00) or block tag. Provided as the last path segment of the URL.

**Returns:** Returns a data.result object containing full block header fields (hash, parentHash, miner, gasUsed, baseFeePerGas, timestamp, etc.), an array of transaction hashes, and withdrawalsRoot for the requested block.

**Example:** `GET https://skills.onesource.io/api/chain/block/0x1212D00`

---

### `fetch-chain-transaction`

**Chain Transaction Lookup** — Fetches on-chain transaction details and receipt data for a given Ethereum mainnet transaction hash, returning decoded metadata, block info, and execution receipt fields.

*Use when:* Use when an agent needs to look up the full details of a specific Ethereum transaction by its hash, including sender, recipient, value, gas usage, execution status, and block placement.

*Not for:* Do not use for querying transactions on non-Ethereum chains or for streaming/watching pending transactions; this is a single-shot lookup for confirmed Ethereum mainnet transactions only.

**Inputs:**

- `txHash` (string, required) — The Ethereum transaction hash to look up, provided as the last path segment of the URL.

**Returns:** Returns a data object with transaction fields (from, to, value, input, gas, nonce, blockNumber) and a receipt object (status, gasUsed, effectiveGasPrice, logs, contractAddress), plus a meta object with endpoint and request_id.

**Example:** `GET https://skills.onesource.io/api/chain/tx/0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b`

---

### `fetch-chain-transaction`

**Chain Transaction Lookup** — Returns raw blockchain transaction data and receipt for a given transaction hash, including sender, recipient, gas, block info, and execution status.

*Use when:* Use when an agent needs to look up the on-chain details of a specific transaction by its hash, such as verifying execution status, gas used, block number, or sender/recipient addresses.

*Not for:* Do not use for streaming or monitoring new transactions in real time; this is a single-shot lookup by known transaction hash. Not suitable for querying transactions by address or block range.

**Inputs:**

- `txHash` (string, required) — The transaction hash to look up, embedded in the URL path (e.g. 0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060).

**Returns:** Returns a data object with transaction fields (hash, from, to, value, gas, block info, input) and a receipt object (status, gasUsed, effectiveGasPrice, logs, contractAddress), plus a meta object with request_id.

**Example:** `GET https://skills.onesource.io/api/chain/tx/0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060`

---

### `fetch-latest-blockchain-block`

**Latest Blockchain Block** — Returns the latest block from the chain including full block metadata, all transaction hashes, and withdrawal details.

*Use when:* Use when an agent needs the current chain head block number, block hash, miner, gas usage, timestamp, or the list of transaction hashes included in the most recent block.

*Not for:* Do not use for historical block lookups by number or hash; this endpoint only returns the latest block. Not suitable for streaming real-time block updates — this is a single-shot fetch.

**Returns:** Returns a JSON object with data.result containing the latest block's hash, parentHash, miner, block number, timestamp, gas fields, baseFeePerGas, blob gas fields, withdrawalsRoot, and an array of transaction hashes.

**Example:** `GET https://skills.onesource.io/api/chain/block/latest`

---

### `fetch-chain-transaction-receipt`

**On-Chain Transaction Receipt** — Retrieves the on-chain transaction receipt for a given transaction hash, returning status, gas usage, block identifiers, sender/recipient addresses, and event logs.

*Use when:* Use when an agent needs to confirm whether a blockchain transaction succeeded or failed, or needs gas consumption, block number, block hash, or log data for a specific transaction hash.

*Not for:* Do not use for fetching pending transaction status or mempool data; this endpoint only returns receipts for already-mined transactions. Not suitable for retrieving raw transaction input data — use a transaction detail endpoint instead.

**Inputs:**

- `transactionHash` (string, required) — The hex-encoded transaction hash to look up, embedded as the last path segment of the URL.

**Returns:** Returns a receipt object with hex-encoded status (0x1=success), gasUsed, blockNumber, blockHash, transactionHash, from/to addresses, contractAddress (null if not a deployment), and an array of emitted logs, plus request metadata.

**Example:** `GET https://skills.onesource.io/api/chain/receipt/0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060`

---

### `fetch-chain-nonce`

**Chain Nonce Lookup** — Returns the current transaction nonce for a given blockchain address, enabling correct transaction sequencing and account state inspection.

*Use when:* Use when an agent needs the current nonce for a blockchain address before constructing or submitting a transaction, or to check account state on-chain.

*Not for:* Do not use for token balances, gas estimation, or block-level data; use dedicated balance or gas APIs instead.

**Inputs:**

- `address` (string, required) — The blockchain address (hex, EIP-55 checksum or lowercase) whose nonce is being queried. Supplied as a path parameter in the URL.

**Returns:** Returns a JSON object with data.nonce as a hex string (e.g. 0x1700) and meta fields containing the endpoint path and a unique request_id.

**Example:** `GET https://skills.onesource.io/api/chain/nonce/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045`

---

### `fetch-chain-transaction-receipt`

**On-Chain Transaction Receipt Lookup** — Returns the on-chain transaction receipt for a given transaction hash, including status, gas usage, block details, logs, and sender/receiver addresses.

*Use when:* Use when an agent needs to verify whether a blockchain transaction succeeded or failed, retrieve gas consumption, block number, or confirm the sender and receiver addresses for a specific transaction hash.

*Not for:* Do not use for fetching pending transactions or mempool data; this endpoint only returns receipts for already-mined transactions. Not suitable for retrieving transaction input data or decoded call parameters.

**Inputs:**

- `transactionHash` (string, required) — The blockchain transaction hash to look up, provided as the final path segment in the URL.

**Returns:** Returns a receipt object with transaction status (0x1=success), gas used, effective gas price, block hash and number, sender/receiver addresses, contract address (null if not a deployment), and an array of emitted logs.

**Example:** `GET https://skills.onesource.io/api/chain/receipt/0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b`

---

### `fetch-onchain-nonce`

**On-Chain Nonce Lookup** — Returns the current transaction nonce for a given blockchain address, enabling correct transaction sequencing and signing workflows.

*Use when:* Use when an agent needs the current nonce for a blockchain address before constructing, signing, or submitting a transaction to avoid nonce conflicts or replay issues.

*Not for:* Do not use for retrieving account balances, token holdings, or contract state — use dedicated balance or contract-read endpoints instead.

**Inputs:**

- `address` (string, required) — The blockchain address (hex, 0x-prefixed) whose current nonce should be retrieved. Supplied as a path parameter in the URL.

**Returns:** Returns a JSON object with data.nonce as a hex string (e.g. 0x1700) and meta fields including the endpoint path and a unique request_id.

**Example:** `GET https://skills.onesource.io/api/chain/nonce/0xd8da6bf26964af9d7eed9e03e53415d37aa96045`

---

### `fetch-ethereum-chain-id`

**Onesource Chain ID** — Queries the upstream Ethereum RPC node via eth_chainId and returns the EIP-155 chain ID in hex format, confirming which chain the backend is serving.

*Use when:* Use when an agent needs to verify the EIP-155 chain ID of the connected Ethereum RPC backend before signing or submitting a transaction, to confirm the expected network is active.

*Not for:* Do not use for retrieving chain IDs of non-Ethereum networks; currently only the 'ethereum' network is supported. Not suitable for streaming or polling chain state — this is a single-shot lookup.

**Inputs:**

- `network` (string) — Blockchain network to query. Currently only 'ethereum' is supported. Defaults to 'ethereum'.

**Returns:** Returns data.result with the hex chain ID (e.g. '0x1' for Ethereum mainnet) and meta object containing the endpoint path and a unique request_id.

**Example:** `GET https://skills.onesource.io/api/chain/chain-id?network=ethereum`

---

### `fetch-ethereum-block-number`

**Chain Block Number** — Returns the current Ethereum mainnet block height as a hex-encoded value via a live eth_blockNumber RPC call with no caching.

*Use when:* Use when an agent needs to determine the current Ethereum chain tip, detect chain progress or stalls, or perform a cheap liveness check before issuing more expensive RPC calls.

*Not for:* Do not use for non-Ethereum networks; only Ethereum mainnet is supported. Not suitable for continuous block streaming — this is a single-shot query per call.

**Inputs:**

- `network` (string) — Blockchain network to query. Currently only "ethereum" mainnet is supported. Defaults to "ethereum".

**Returns:** Returns a JSON object with data.result containing the current Ethereum block number in hex (e.g. 0x17e0588) and meta fields including endpoint path and request_id.

**Example:** `GET https://skills.onesource.io/api/chain/block-number?network=ethereum`

---

### `fetch-ethereum-pending-block`

**Pending Ethereum Block Data** — Returns the current pending Ethereum block and its full transaction list as seen by the upstream RPC node via eth_getBlockByNumber("pending").

*Use when:* Use when an agent needs to inspect unconfirmed Ethereum mempool transactions, monitor block-building activity, assess front-running risk, or examine pending block metadata before the next block is mined.

*Not for:* Do not use for confirmed on-chain transaction data or historical block queries; use a confirmed block or transaction lookup endpoint instead. Not suitable for non-Ethereum networks.

**Inputs:**

- `network` (string) — Blockchain network to query. Currently only 'ethereum' is supported. Defaults to 'ethereum'.

**Returns:** Returns a data.result object containing the pending Ethereum block's metadata (number, hash, miner, gasLimit, baseFeePerGas, timestamp) and a full transactions array with per-transaction fields including type, from, to, value, gas, and input data.

**Example:** `GET https://skills.onesource.io/api/chain/pending?network=ethereum`

---

### `fetch-ens-name-resolution`

**ENS Lookup** — Resolves an Ethereum ENS name to its on-chain address, resolver contract address, and forward/reverse resolution status.

*Use when:* Use when an agent needs to convert an ENS name (e.g. vitalik.eth) to its resolved Ethereum wallet address or verify forward/reverse resolution status on-chain.

*Not for:* Do not use for reverse lookups starting from an address — this endpoint takes an ENS name as input, not an address. Not suitable for non-ENS naming systems.

**Inputs:**

- `ens_name` (string, required) — The ENS name to resolve, passed as the final path segment in the URL (e.g. vitalik.eth).

**Returns:** Returns the resolved Ethereum address, resolver contract address, and forward/reverse resolution flags for the given ENS name, plus request metadata.

**Example:** `GET https://skills.onesource.io/api/chain/ens/vitalik.eth`

---

### `fetch-ens-name-details`

**ENS Name Lookup** — Resolves an ENS name to its on-chain Ethereum address, resolver contract address, and forward/reverse resolution status.

*Use when:* Use when an agent needs to resolve an ENS name (e.g. nick.eth) to its associated Ethereum wallet address or verify its resolver and resolution status on-chain.

*Not for:* Do not use for reverse ENS lookups starting from an address; this endpoint takes an ENS name as input. Not suitable for bulk or batch ENS resolution.

**Inputs:**

- `name` (string, required) — The ENS name to resolve, provided as a path parameter in the URL (e.g. nick.eth).

**Returns:** Returns the resolved Ethereum address, resolver contract address, and forward/reverse resolution booleans for the given ENS name, plus request metadata.

**Example:** `GET https://skills.onesource.io/api/chain/ens/nick.eth`

---

### `fetch-onchain-contract-metadata`

**On-Chain Contract Metadata** — Returns contract metadata for an Ethereum address including name, symbol, code size, token standard flags (ERC-20/721/1155), and supported interfaces.

*Use when:* Use when an agent needs to identify whether an Ethereum address is a contract, determine its token standard (ERC-20, ERC-721, ERC-1155), or retrieve its name and symbol without querying a separate token registry.

*Not for:* Do not use for off-chain token price or market data; use a price feed API instead. Not suitable for non-Ethereum-compatible addresses or wallet EOA lookups.

**Inputs:**

- `address` (string, required) — Ethereum contract address to query, embedded as a path parameter in the URL.

**Returns:** Returns a data object with the contract address, is_contract flag, code_length, name, symbol, ERC-20/721/1155/165 boolean flags, and a list of supported interface names.

**Example:** `GET https://skills.onesource.io/api/chain/contract/0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D`

---

### `fetch-ethereum-network-info`

**Ethereum Network Info** — Fetches Ethereum chain ID, network version, latest block number, and gas price in a single batched RPC call (eth_chainId + eth_blockNumber + eth_gasPrice).

*Use when:* Use when an agent needs to bootstrap Ethereum context, probe node liveness, or pre-flight a transaction and requires chain ID, current block height, and gas price in one round-trip instead of three separate RPC calls.

*Not for:* Do not use for non-Ethereum networks; this endpoint only supports Ethereum mainnet. Do not use for streaming or polling gas prices at high frequency — this is a single-shot snapshot.

**Inputs:**

- `network` (string) — Blockchain network to query. Currently only 'ethereum' is supported; defaults to 'ethereum'.

**Returns:** Returns a data object with chain_id, block_number, gas_price, net_version, and network name (all hex-encoded where applicable), plus a meta object with endpoint path and request_id.

**Example:** `GET https://skills.onesource.io/api/chain/network-info?network=ethereum`

---

### `fetch-contract-bytecode`

**Contract Code Lookup** — Returns the deployed EVM bytecode and address metadata for a given Ethereum contract address by querying on-chain code.

*Use when:* Use when an agent needs to verify whether an Ethereum address is a smart contract or retrieve its deployed bytecode for inspection, analysis, or verification purposes.

*Not for:* Do not use for fetching ABI definitions, source code, or human-readable contract interfaces; use a contract verification or ABI lookup API instead.

**Inputs:**

- `address` (string, required) — The Ethereum contract address to look up, provided as a path parameter in the URL (checksummed or lowercase hex).

**Returns:** Returns a data object containing the queried address in lowercase and its full deployed EVM bytecode as a 0x-prefixed hex string.

**Example:** `GET https://skills.onesource.io/api/chain/code/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`

---

### `detect-evm-proxy-contract`

**EVM Proxy Detector** — Checks whether an EVM contract address is a proxy, returning its proxy type, implementation address, and contract status.

*Use when:* Use when an agent needs to determine if a given EVM contract address is a proxy contract, identify the proxy pattern used, and resolve the underlying implementation address for on-chain contract introspection or verification.

*Not for:* Do not use for fetching contract ABI, source code, or bytecode; use a contract verification API instead. Not suitable for non-EVM chains.

**Inputs:**

- `address` (string, required) — The EVM contract address to inspect for proxy status, provided as the last path segment of the URL.

**Returns:** Returns a data object with the contract address, is_proxy boolean, proxy_type string, implementation address, and is_contract boolean, plus request metadata.

**Example:** `GET https://skills.onesource.io/api/chain/proxy/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`

---
