## BlockScout Internal Documentation To view Modules and API Reference documentation: 1. Generate documentation. `mix docs` 2. View the generated docs. `open doc/index.html` ## BlockScout API Usage Api calls can be accessed from the BlockScout UI menu. BlockScout supports several methods: 1. [Graphiql](https://github.com/graphql/graphiql): An IDE for exploring GraphQL 2. RPC: API provided for developers transitioning their applications from Etherscan to BlockScout. It supports GET and POST requests. ### Graphiql Send Queries to quickly get information. Use the Docs button to quickly find arguments accepted by the schema.More information is available in our [BlockScout GraphQL tutorial](https://forum.poa.network/t/graphql-in-blockscout/1971). ![Graphiql](_media/graphiql_screenshot.png) #### Graphiql RootQueryType Fields * address(hash: AddressHash!): Address
Gets an address by hash.

* addresses(hashes: [AddressHash!]!): [Address]
Gets addresses by address hash.

* block(number: Int!): Block
Gets a block by number.

* node(id: ID!): Node
Fetches an object given its ID

* tokenTransfers(
after: String
before: String
count: Int
first: Int
last: Int
tokenContractAddressHash: AddressHash!
): TokenTransferConnection
Gets token transfers by token contract address hash.

* transaction(hash: FullHash!): Transaction
Gets a transaction by hash. #### Example Queries Blockscout's GraphQL API provides 4 queries and 1 subscription. You can view them in GraphiQL interface under the `Schema` tab. Short query examples: | Query | Description | Example | |-----------------------------------------------|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------| | address(hash: AddressHash!): Address | Gets an address by hash | {address(hash: "0x1fddEc96688e0538A316C64dcFd211c491ECf0d8") {hash, contractCode} } | | addresses (hashes: [AddressHash!]): [Address] | Gets addresses by hashes | {addresses(hashes: ["0x1fddEc96688e0538A316C64dcFd211c491ECf0d8", "0x3948c17c0f45017064858b8352580267a85a762c"]) {hash, contractCode} } | | block(number: Int!): Block | Gets a block by number | {block(number: 1) {parentHash, size, nonce}} | | transaction (hash: FullHash!): Transaction | Gets a transaction by hash. | {transaction(hash: "0xc391da8f433b3bea0b3eb45da40fdd194c7a0e07d1b5ad656bf98940f80a6cf6") {input, gasUsed}} | [Example GraphQL Query to retrieve transactions for a specific address](https://forum.poa.network/t/faq-graphql-query-to-retrieve-transactions-for-a-specific-address/1937)