Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADO Submission - Skills Marketplace #17

Open
hrishabhayush opened this issue Jan 26, 2025 · 0 comments
Open

ADO Submission - Skills Marketplace #17

hrishabhayush opened this issue Jan 26, 2025 · 0 comments
Labels
ADO Submission Submission of an ADO

Comments

@hrishabhayush
Copy link

Contact Information

ADO Repo
https://github.com/hrishabhayush/andromeda-final-proj

Contract Summary
The Skills Marketplace ADO is a decentralized platform for listing and purchasing skill-based services. It provides users with a secure and transparent environment for connecting service providers with clients. Core functionalities include:

  • Service listing and categorization.
    -Escrow-based payment handling for secure transactions.
  • Review and rating system for building trust among participants.

External Reference Links
https://www.fiverr.com/
https://request.network/blog/joba-a-decentralized-talent-marketplace-s-journey

Contract Flow Breakdown

  1. Initialization: Contract is deployed, and platform settings (e.g., fees, supported tokens) are configured.
  2. Service Listing: Providers list services, specifying metadata such as description, cost, and category.
  3. Transaction Flow: Clients select services, payments are escrowed, and funds are released upon delivery confirmation.
  4. Reputation Building: Post-transaction, clients leave reviews and ratings for providers.

Under what category
Ecosystem > Marketplaces

Messages

Instantiation

The following parameters are stored upon instantiation:

  • owner_address: The address of the marketplace administrator.
  • platform_fee: The percentage fee charged on each transaction.
  • supported_tokens: A list of tokens supported for payments.

Execute Messages

  1. Add Service:

    • Allows service providers to list their offerings on the marketplace.
    • Inputs:
      • description: A brief description of the service.
      • price: The cost of the service.
      • category: The category under which the service falls.
    • Called by: Service Providers.
  2. Purchase Service:

    • Initiates a transaction and escrows the payment.
    • Inputs:
      • service_id: The ID of the service to be purchased.
      • amount: The agreed-upon payment amount.
    • Called by: Clients.
  3. Confirm Delivery:

    • Releases escrowed funds to the provider upon successful service completion.
    • Inputs:
      • transaction_id: The ID of the transaction to confirm.
    • Called by: Clients.
  4. Submit Review:

    • Records reviews and ratings for completed transactions.
    • Inputs:
      • transaction_id: The ID of the transaction being reviewed.
      • rating: A numeric rating (e.g., 1–5).
      • review: Text feedback from the client.
    • Called by: Clients.

Query Messages

  1. GetServiceListings:

    • Returns all active service listings with optional filters for cost, category, etc.
    • Inputs (optional):
      • category: Filter by service category.
      • max_price: Maximum price threshold for results.
      • provider_address: Filter by specific service provider.
    • Returns: A list of matching service listings.
  2. GetProviderDetails:

    • Fetches details about a specific provider, including their services and ratings.
    • Inputs:
      • provider_address: The address of the service provider.
    • Returns: Provider metadata, including services offered and aggregated rating.
  3. GetTransactionHistory:

    • Retrieves transaction history for auditing purposes.
    • Inputs:
      • user_address: The user’s address (optional).
      • status: Filter by transaction status (e.g., completed, pending).
    • Returns: A list of transactions matching the query.

Possible Next Iterations/Future Work

Possible Concers/Risks (Security,speed,safety,logic)

  • Integration of machine learning models for personalized recommendations based on user preferences and transaction history.
  • Support for subscription-based services with recurring payments.
  • Enhanced governance mechanisms for dispute resolution, leveraging community votes.

Other ADO’s to Pair With (Does this ADO work with another existing ADO? If so, which and how? Does it need to be part of an App?)

  • Escrow ADO: Used for secure management of funds during transactions.
  • Governance ADO: Provides community-based dispute resolution mechanisms.

Credits/Associations(Is this ADO inspired by another from the ecosystem? Was it prepared with another partnering group or developers?)

This ADO is inspired by existing gig economy platforms like Upwork and Fiverr, with a decentralized approach. It incorporates features based on feedback on X and other social media from blockchain enthusiasts and potential users.

Dependencies

Cargo Dependencies Used

  • cosmwasm-std
  • cosmwasm-storage
  • serde
  • schemars

Third-Party Dependencies

  • IPFS: For optional metadata storage related to services and reviews.

Compatibility

  • Compatible with Cosmos-based blockchains supporting CosmWasm smart contracts.
  • Requires chains with support for Cosmos SDK modules like bank and staking.

Usage Guide

Usage Guide

Below are examples of messages that can be executed and queried, along with the JSON payloads to interact with the Skills Marketplace ADO.

Execute Messages

Add Service

Allows a service provider to list a new service on the marketplace.

Example JSON:

{
  "add_service": {
    "description": "Expert-level graphic design services for branding and marketing.",
    "price": 150,
    "category": "Graphic Design"
  }
}

Purchase Service

Initiates the purchase process by creating a transaction and escrowing the payment.

Example JSON:

{
  "purchase_service": {
    "service_id": "service123",
    "amount": 150
  }
}

Confirm Delivery

Confirms that the service was successfully delivered and releases escrowed funds to the provider.

Example JSON:

{
  "confirm_delivery": {
    "transaction_id": "txn001"
  }
}

Submit Review

Allows a client to submit feedback and ratings for a completed transaction.

Example JSON:

{
  "submit_review": {
    "transaction_id": "txn456",
    "rating": 5,
    "review": "Excellent service! Very professional and timely."
  }
}

Query Messages

Get Service Listings

Fetches all active service listings with optional filters.

Example JSON (without filters):

{
  "get_service_listings": {}
}

Example JSON (with filters):

{
  "get_service_listings": {
    "category": "Graphic Design",
    "max_price": 200
  }
}

Get Provider Details

Retrieves details about a specific service provider, including their services and reviews.

Example JSON:

{
  "get_provider_details": {
    "provider_address": "example_addr"
  }
}

Get Transaction History

Fetches a user’s transaction history. Filters can be applied by status (e.g., completed, pending).

{
  "get_transaction_history": {
    "user_address": "example_addr",
    "status": "completed"
  }
}
@hrishabhayush hrishabhayush added the ADO Submission Submission of an ADO label Jan 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ADO Submission Submission of an ADO
Projects
None yet
Development

No branches or pull requests

1 participant