animica

v0.4.5 suspicious
4.0
Medium Risk

Animica blockchain CLI and client libraries — node, wallet, miner, contracts, and useful-work jobs.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows some signs of obfuscation and has metadata risks, but lacks clear indicators of malicious intent or credential theft. The overall risk is moderate, warranting further investigation.

  • Presence of Base64 decoding suggesting possible obfuscation
  • Insecure external links and incomplete maintainer profile
Per-check LLM notes
  • Obfuscation: The presence of Base64 decoding suggests some level of obfuscation, but it could be legitimate for data encoding purposes.
  • Credentials: No clear patterns indicating credential harvesting were found.
  • Metadata: The package contains a non-secure external link and the maintainer has an incomplete profile with only one package, indicating potential unreliability.

📦 Package Quality Overall: Medium (5.8/10)

○ Low Test Suite 1.0

No test suite detected

  • No test files or test-runner configuration detected
◈ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://animica.org/docs
  • Detailed PyPI description (2487 chars)
○ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
◈ Medium Type Annotations 7.0

Partial type annotation coverage

  • Type checker (mypy / pyright / pytype) referenced in project
  • 440 type-annotated function signatures detected in source
✦ High Multiple Contributors 10.0

Active multi-contributor project

  • 5 unique contributor(s) across 100 commits in animicaorg/all
  • Active community — 5 or more distinct contributors

🔬 Heuristic Checks

Outbound Network Calls score 9.0

Found 6 network call pattern(s)

  • rt urllib.error req = urllib.request.Request(url, headers={ "User-Agent": "animica-ag
  • 0.1", }) with urllib.request.urlopen(req, timeout=timeout) as resp: status =
  • encode("utf-8") req = urllib.request.Request( rpc_url, data=body, headers
  • POST", ) with urllib.request.urlopen(req, timeout=timeout) as resp: data = js
  • }}).encode("utf-8") req = urllib.request.Request(url, data=body, method="POST",
  • json"}) try: with urllib.request.urlopen(req, timeout=timeout_sec) as resp: ct =
Code Obfuscation score 10.0

Found 6 obfuscation pattern(s)

  • upstream_payload = base64.b64decode(upstream_b64) except Exception: #
  • try: raw = base64.b64decode(output_b64) except Exception: # noqa: BLE001
  • 0s") upstream_bytes = base64.b64decode(upstream_b64) if runner is not None: out
  • try: raw = base64.b64decode(output_b64) tag = compute_payload_tag(
  • up_bytes = base64.b64decode(up_b64) if up_b64 else b"" if runner is
  • raw = base64.b64decode(out_b64) tag = compute_payload_tag(
Shell / Subprocess Execution score 10.0

Found 6 shell execution pattern(s)

  • dict]: try: out = subprocess.check_output( ["git", "log", f"--max-count={max_
  • try: patch = subprocess.check_output( ["git", "show", "--unified=3", "--no-color"
  • try: r = subprocess.run(["bash", "-n"], input=s, text=True,
  • arcname=src.name) subprocess.check_call(["zstd", "-q", "--rm", "-19",
  • ath}" try: proc = subprocess.run( ["grep", "-rn", "--include=*", pattern, str(p)]
  • str: try: proc = subprocess.run( ["bash", "-c", command], capture_ou
Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

No author email provided

Suspicious Page Links score 2.0

Found 1 suspicious link(s) on the package page

  • Non-HTTPS external link: http://127.0.0.1:8545/rpc
Git Repository History

Repository animicaorg/all appears legitimate

Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with animica
Create a decentralized job marketplace using the 'animica' Python package. This application will serve as a platform where users can post jobs requiring specific skills and other users can apply for these jobs. The platform will leverage the Animica blockchain for secure transactions and smart contract management.

### Features:
- **User Authentication:** Users can sign up, log in, and manage their profiles.
- **Job Posting:** Authenticated users can post jobs with details such as job description, required skills, and payment amount.
- **Job Application:** Other users can apply for posted jobs.
- **Smart Contract Management:** Once a job is accepted, a smart contract is created to ensure fair and secure transactions between the employer and the worker.
- **Payment Processing:** Payments are processed through the Animica blockchain to ensure security and transparency.
- **Dispute Resolution:** A mechanism for handling disputes between employers and workers.

### Steps to Build the Application:
1. **Set Up Environment:** Install Python and the necessary dependencies including the 'animica' package.
2. **Authentication System:** Implement user authentication using the Animica wallet functionalities provided by the 'animica' package.
3. **Job Posting Interface:** Develop an interface where users can post jobs specifying all relevant details.
4. **Application Handling:** Allow other users to apply for these jobs.
5. **Smart Contract Creation:** Use the 'animica' package to create and deploy smart contracts when a job is accepted.
6. **Transaction Processing:** Utilize the Animica blockchain capabilities within the 'animica' package to process payments securely.
7. **Dispute Resolution Mechanism:** Implement a system for resolving any disputes that may arise between parties involved in the job.
8. **Testing and Deployment:** Thoroughly test the application to ensure all features work as expected and then deploy it to a server.

### How 'animica' Package is Utilized:
- **Wallet Operations:** For managing user accounts and performing transactions.
- **Node Interaction:** To interact with the Animica blockchain for deploying smart contracts and processing transactions.
- **Miner Functions:** To facilitate the creation of new blocks and confirmations on the blockchain.
- **Contracts:** For defining the terms of each job and ensuring they are executed according to the agreed-upon rules.