{"id":18438887,"url":"https://github.com/nibbstack/erc721-validator-api","last_synced_at":"2025-04-07T21:32:01.981Z","repository":{"id":46864361,"uuid":"141589060","full_name":"nibbstack/erc721-validator-api","owner":"nibbstack","description":null,"archived":false,"fork":false,"pushed_at":"2022-02-27T11:01:34.000Z","size":468,"stargazers_count":4,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T16:56:41.037Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nibbstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-19T14:11:38.000Z","updated_at":"2023-06-17T17:52:41.000Z","dependencies_parsed_at":"2022-09-23T07:02:04.202Z","dependency_job_id":null,"html_url":"https://github.com/nibbstack/erc721-validator-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nibbstack%2Ferc721-validator-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nibbstack%2Ferc721-validator-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nibbstack%2Ferc721-validator-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nibbstack%2Ferc721-validator-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nibbstack","download_url":"https://codeload.github.com/nibbstack/erc721-validator-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247732588,"owners_count":20986892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2024-11-06T06:22:24.576Z","updated_at":"2025-04-07T21:32:01.533Z","avatar_url":"https://github.com/nibbstack.png","language":"TypeScript","readme":"# ERC721 Validator API\n\n\u003e REST API for validating ERC-721 contracts.\n\n## REST API\n\nThis api operates as a global english-based service.\n\n### Endpoints\n\nHere is a list of available endpoints:\n\n* **production**: https://URL\n\n### Requests\n\nThe server speaks [JSON](https://en.wikipedia.org/wiki/JSON). It's recommended that every call to the server includes the `ContentType` header set to `application/json; charset=utf-8;`. \n\nRequests with `POST` or `PUT` methods must send data as `application/json` or `mutipart/form-data` when files are included in the request body.\n\n```bash\n$ curl -X 'POST' 'https://URL/example' \\\n       -H 'Content-Type: application/json; charset=utf-8' \\\n       -d $'{ \"name\": \"John Smith\" }'\n```\n\n### Responses\n\nServer response always reflects user's abilities. This means that some routes return personalized data based on user's permissions.\n\nEvery response has a unique ID which helps identifying potential problems. It also includes a status code that helps identifying the cause of a problem.\n\nSuccessful requests include a `data` key, which holds a valid response object, and a `meta` key, which holds additional information about the result.\n\n```js\n{\n  \"data\": { ... },\n  \"id\": ...,\n  \"meta\": { ... },\n  \"status\": ...,\n}\n```\n\nIn case of failur, the server responds with `errors` key, which holds a list of error objects.\n\n```js\n{\n  \"errors\": [ ... ]\n  \"id\": ...,\n  \"status\": ...,\n}\n```\n\nQuery requests through `GET` method can return status codes `200`, `400`, `401`, `403` or `500`. Mutations through `POST`, `PUT` and `DELETE` can return also codes `201` and `422`. Invalid routes return status code `404`.\n\n* **200**: Success.\n* **201**: Successfully created.\n* **400**: Invalid resource or resource not found.\n* **401**: Unauthenticated access.\n* **403**: Unauthorized access.\n* **404**: Path not found.\n* **422**: Data validation failed.\n* **500**: System error.\n\n### Error Handling\n\nErrors include a unique code number and an error message. The code number helps identifying potential problems and points to the exact position in the system.\n\n```js\n{\n  ...\n  \"errors\": [\n    {\n      \"code\": 50033,\n      \"message\": \"Invalid path.\"\n    }\n  ]\n}\n```\n\nBelow is a complete list of handled errors.\n\n| Code | Message\n|-|-\n| 50033 | Invalid path.\n| 50034 | Unhandled system error.\n\n### Routes\n\nMost of the routes are `public` which means that user authentication is not required. The API requests and responses are based on user's abilities.\n\n#### [public] GET /\n\n\u003e Returns the general server information.\n\n#### [public] GET /basic\n\n\u003e Runs selected basic test.\n\n##### Query parameters\n\n| Name | Type | Default | Errors | Description\n|-|-|-|-|-\n| test | Number | - | - | Test case number - valid from 1 - 10.\n| contract | String | - | - | Valid contract address.\n\n#### [public] GET /token\n\n\u003e Runs selected basic test.\n\n##### Query parameters\n\n| Name | Type | Default | Errors | Description\n|-|-|-|-|-\n| test | Number | - | - | Test case number - valid from 1 - 3.\n| contract | String | - | - | Valid contract address.\n| token | String | - | - | Valid token id.\n\n#### [public] GET /transfer\n\n\u003e Runs selected basic test.\n\n##### Query parameters\n\n| Name | Type | Default | Errors | Description\n|-|-|-|-|-\n| test | Number | - | - | Test case number - valid from 1 - 14.\n| contract | String | - | - | Valid contract address.\n| token | String | - | - | Valid token id.\n| giver | String | - | - | Valid account address.\n\n## Development\n\n### Variables\n\nBefore you run the project, make sure you configure environment variables. You should create a configuration file for each environemnt:\n\n* Development: `./bin/development/env.sh`\n* Test: `./bin/test/env.sh`\n* Production: `./bin/production/env.sh`\n\nHere is how the file content should look like:\n\n```bash\n#!/bin/sh\nexport APP_ENV=development\nexport APP_SECRET=notasecret\nexport API_HOST='127.0.0.1'\nexport API_PORT=4444\nexport WEB3_URL='WEB3_URL'\n```\n\n### Source code\n\nRun the commands below to install the service and all the required dependencies. Also make sure that you can access required repositories before running the commands below.\n\n```\n$ git clone git@github.com:nibbstack/erc721-vaildator-api.git\n$ cd erc721-vaildator-api\n$ npm install\n```\n\nRun tests and start the server.\n\n```\n$ npm test\n$ npm run development:start-http\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnibbstack%2Ferc721-validator-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnibbstack%2Ferc721-validator-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnibbstack%2Ferc721-validator-api/lists"}