cli
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cli
git clone https://github.com/MarkTanashchuk/rust_graphql_nft.git && cd ./rust_graphql_nft
Create Infura Web3 API Key and copy network endpoint(with https)
Configure .env
file, e.g.
```env TRANSPORTURL=https://mainnet.infura.io/v3/APIKEY
```
Start server
cli
cargo run --release
Open localhost:{PORT}. By default localhost:8080
Note: Only Ethereum address format and ERC721 standard are supported
The server is written using async-graphql, so to add new queries you need to update the graphql/mod.rs file according to docs.
To add custom metadata formats with custom fields, add a new file with the required structure to the src/graphql/token/metadata folder.
```graphql
query GetTokenWithMetadata($address: String!, $id: String!) { ethToken(address: $address, id: $id) { tokenAddress tokenId tokenURI tokenMetadata { name description image attributes { traitType value } } } } ```
```graphql
query GetTokenWithMetadata($address: String!) { ethTokens(address: $address) { tokenAddress tokenId tokenURI tokenMetadata { name description image attributes { traitType value } } } } ```
The TRANSPORT_URL
in the .env
file is set incorrectly or the provided API_KEY
does not allow unauthorized access
In case of infura
, create a new Web3 API, click Manage Key and copy the full Ethereum endpoint into TRANSPORT_URL
in the .env
file.
Parameters provided to the QueryAPI::query
function may be invalid(https://github.com/tomusdrw/rust-web3/issues/383)
Licensed under MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)