{"id":34024627,"url":"https://github.com/bugout-dev/entity","last_synced_at":"2026-03-12T15:01:32.165Z","repository":{"id":64795734,"uuid":"550220719","full_name":"bugout-dev/entity","owner":"bugout-dev","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-13T17:38:04.000Z","size":76,"stargazers_count":3,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-15T06:31:56.282Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/bugout-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-12T11:54:02.000Z","updated_at":"2023-01-31T20:36:14.000Z","dependencies_parsed_at":"2023-01-30T11:45:26.600Z","dependency_job_id":null,"html_url":"https://github.com/bugout-dev/entity","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/bugout-dev/entity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugout-dev%2Fentity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugout-dev%2Fentity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugout-dev%2Fentity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugout-dev%2Fentity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bugout-dev","download_url":"https://codeload.github.com/bugout-dev/entity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bugout-dev%2Fentity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30429291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-12-13T16:29:52.335Z","updated_at":"2026-03-12T15:01:32.151Z","avatar_url":"https://github.com/bugout-dev.png","language":"Python","readme":"# Entity\n\nEntity is used to store any web3 address (including smart contract addresses and even addresses that may not have been used) and identifying information/notes.\n\nEntities are useful during game air drops, it's providing additional information in leaderboards, for internal usage of crypto projects who want their users to pass KYC and legal things there was a problem to bridge the blockchain and physical world.\n\nCurrent document describes how to store user identity data with Moonstream infrastructure for different use cases:\n\nIt supports different use cases:\n\n-   User web3 addresses\n-   Maintaining a list of deployed smart contracts (by address)\n-   Maintaining a list of smart contract deployers\n-   Blacklisting or whitelisting accounts by Discord id, Twitter id, email, etc.\n-   Other..\n\nThis is not just a mapping between users (human-owned addresses) and identifying information, but any web3 address (including smart contract addresses and even addresses that may not have been used) and identifying information/notes. For smart contracts, it would also store things like bytecode, ABI, etc.\n\nFor each entity there are 3 permanently required fields:\n\n-   name\n-   address\n-   blockchain\n\nDepending on the use case, you can specify additional fields that will be required for your entities in certain collection. Then, you will be able to search across these fields with high precision compared to other fields.\n\nDetailed documentation you can find at https://docs.moonstream.to/engine/entity\n\n## Different use cases and schemes\n\n### Smartcontract\n\nRequired keys: `name`, `address`, `blockchain`, `contract_deployer`, `support_erc`, `proxy`. Other fields could be added as additional.\n\nname: `Terminus`\n\nrequired fields:\n\n```json\n{\n\t\"blockchain\": \"polygon\",\n\t\"address\": \"0x062BEc5e84289Da2CD6147E0e4DA402B33B8f796\",\n\t\"contract_deployer\": \"0xEba757cEac281D9de85b768Ef4B9E1992C41EA7F\",\n\t\"support_erc\": [1155, 721],\n\t\"proxy\": true\n}\n```\n\nadditional fields:\n\n```json\n{\n\t\"description\": \"Terminus Moonstream.to smartcontract.\",\n\t\"discord\": \"https://discord.com/invite/K56VNUQGvA\"\n}\n```\n\n## Smartcontract deployer\n\nRequired keys: `address`, `name`, `blockchain`, `deployed_contract`. Other fields could be added as additional.\n\ntitle: `Moonstream dropper contract deployer`\n\nrequired fields:\n\n```json\n{\n\t\"blockchain\": \"polygon\",\n\t\"address\": \"0xEba757cEac281D9de85b768Ef4B9E1992C41EA7F\",\n\t\"deployed_contract\": \"0x7bbf900Ded826D5A16a27dF028018673E521B35d\",\n\t\"deployed_contract\": \"0xEba757cEac281D9de85b768Ef4B9E1992C41EA7F\"\n}\n```\n\nadditional fields:\n\n```json\n{\n\t\"description\": \"Moonstream.to deployer.\",\n\t\"discord\": \"https://discord.com/invite/K56VNUQGvA\"\n}\n```\n\n## Entity API\n\nAll your entities stored in collections and each new collection belongs only to you until you will provide access to you friends or team read/update/delete access.\n\nTo work with entity you need to Create an account at https://moonstream.to, and generate Bearer access token or attach your web3 address for web3_token. And store it as environment variable:\n\n```bash\nexport MOONSTREAM_ACCESS_TOKEN=\"\u003cyour_access_token\u003e\"\n```\n\n### Creating collections via API\n\nCreate collection `curl` request\n\n```bash\ncurl --request POST \"https://api.moonstream.to/entity/collections\" \\\n    --header \"Authorization: Bearer $MOONSTREAM_ACCESS_TOKEN\" \\\n    --header \"Content-Type: application/json\" \\\n    --data-raw '{\n        \"name\": \"Whitelist of November\"\n    }'\n```\n\nGet list of your collections\n\n```bash\ncurl --request GET \"https://api.moonstream.to/entity/collections\" \\\n    --header \"Authorization: Bearer $MOONSTREAM_ACCESS_TOKEN\"\n```\n\n### Creating entities\n\nSet collection you are working with:\n\n```bash\nexport MOONSTREAM_ENTITY_COLLECTION_ID=\"\u003cyour_collection_id\u003e\"\n```\n\nFor each entity there are 3 permanently required fields:\n\n-   name\n-   address\n-   blockchain\n\nDepending on the use case, you can specify additional fields that will be required for your entities in certain collection. Then, you will be able to search across these fields with high precision compared to other fields.\n\n```bash\ncurl --location --request POST \"https://api.moonstream.to/entity/collections/$MOONSTREAM_ENTITY_COLLECTION_ID/entities\" \\\n    --header \"Authorization: Bearer $MOONSTREAM_ACCESS_TOKEN\" \\\n    --header \"Content-Type: application/json\" \\\n    --data-raw '{\n        \"name\": \"Dark Forest burner\",\n        \"address\": \"0xe7f5cce56814f2155f05ef6311a6de55e4189ea5\",\n        \"blockchain\": \"xdai\",\n        \"required_fields\": [\n            {\"discord\": \"https://discord.com/invite/K56VNUQGvA\"},\n            {\"organization\": true}\n        },\n        \"description\": \"Moonstream organization burner address for Dark Forest game.\"\n    }'\n```\n\nAlso you can pass a list of entities to create them in bulk mode to url `https://api.moonstream.to/entity/collections/{{collection_id}}/bulk`\n\nGet list of entities with request:\n\n```bash\ncurl --request GET \"https://api.moonstream.to/entity/collections/$MOONSTREAM_ENTITY_COLLECTION_ID/entities\" \\\n    --header \"Authorization: Bearer $MOONSTREAM_ACCESS_TOKEN\"\n```\n\n### Entity modifications\n\nSet entity you are working with:\n\n```bash\nexport MOONSTREAM_ENTITY_ID=\"\u003cyour_entity_id\u003e\"\n```\n\nDelete entity:\n\n```bash\ncurl --request DELETE \"https://api.moonstream.to/entity/collections/$MOONSTREAM_ENTITY_COLLECTION_ID/entities/$MOONSTREAM_ENTITY_ID\" \\\n    --header \"Authorization: Bearer $MOONSTREAM_ACCESS_TOKEN\"\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugout-dev%2Fentity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbugout-dev%2Fentity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugout-dev%2Fentity/lists"}