Release 202505310921
This commit is contained in:
155
web/src/pages/docs/api.mdx
Normal file
155
web/src/pages/docs/api.mdx
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
layout: ../../layouts/MarkdownLayout.astro
|
||||
title: API
|
||||
author: KYCnot.me
|
||||
pubDate: 2025-05-31
|
||||
description: 'Access basic service data via our public API.'
|
||||
icon: 'ri:plug-line'
|
||||
---
|
||||
|
||||
import { SOURCE_CODE_URL } from 'astro:env/server'
|
||||
import { kycLevels } from '../../constants/kycLevels'
|
||||
import { verificationStatuses } from '../../constants/verificationStatus'
|
||||
|
||||
Access basic service data via our public API.
|
||||
|
||||
All endpoints should be prefixed with `/api/v1/`.
|
||||
|
||||
The endpoints <a href={SOURCE_CODE_URL}>source code</a> is available on the `/web/src/actions/api/index.ts` file.
|
||||
|
||||
**Attribution:** Please credit **KYCnot.me** if you use data from this API.
|
||||
|
||||
## `QUERY` `/service/get`
|
||||
|
||||
Fetches details for a single service by various lookup criteria.
|
||||
|
||||
### Request Parameters
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| ------------ | ------ | -------- | ----------- |
|
||||
| `id` | number | No* | Service ID |
|
||||
| `slug` | string | No* | Service URL slug (lowercase letters, numbers, and hyphens only) |
|
||||
| `serviceUrl` | string | No* | Service URL. May be web, onion, or i2p. May just be a domain or a full URL. |
|
||||
|
||||
\* At least one of the marked parameters is required.
|
||||
|
||||
### Response Format
|
||||
|
||||
```typescript
|
||||
type ServiceResponse = {
|
||||
id: number
|
||||
slug: string
|
||||
name: string
|
||||
description: string
|
||||
verificationStatus: 'VERIFICATION_SUCCESS' | 'APPROVED' | 'COMMUNITY_CONTRIBUTED' | 'VERIFICATION_FAILED'
|
||||
verificationStatusInfo: {
|
||||
value: 'VERIFICATION_SUCCESS' | 'APPROVED' | 'COMMUNITY_CONTRIBUTED' | 'VERIFICATION_FAILED'
|
||||
slug: string
|
||||
label: string
|
||||
labelShort: string
|
||||
description: string
|
||||
}
|
||||
kycLevel: 0 | 1 | 2 | 3 | 4
|
||||
kycLevelInfo: {
|
||||
value: 0 | 1 | 2 | 3 | 4
|
||||
name: string
|
||||
description: string
|
||||
}
|
||||
categories: {
|
||||
name: string
|
||||
slug: string
|
||||
}[]
|
||||
serviceUrls: string[]
|
||||
tosUrls: string[]
|
||||
kycnotmeUrl: `https://kycnot.me/service/${service.slug}`
|
||||
}
|
||||
```
|
||||
|
||||
### KYC Levels
|
||||
|
||||
<ul>
|
||||
{kycLevels.map((level) => (
|
||||
<li key={level.id}>
|
||||
<strong>{level.id}</strong>: {level.name} - {level.description}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
### Verification Status
|
||||
|
||||
<ul>
|
||||
{verificationStatuses.map((status) => (
|
||||
<li key={status.value}>
|
||||
<strong>{status.value}</strong>: {status.description}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
### Example Request
|
||||
|
||||
```zsh
|
||||
curl -X QUERY https://kycnot.me/api/v1/service/get \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"slug": "my-example-service"}'
|
||||
```
|
||||
|
||||
### Example Response
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "My Example Service",
|
||||
"description": "This is a description of my example service",
|
||||
"verificationStatus": "VERIFICATION_SUCCESS",
|
||||
"verificationStatusInfo": {
|
||||
"value": "VERIFICATION_SUCCESS",
|
||||
"slug": "verified",
|
||||
"label": "Verified",
|
||||
"labelShort": "Verified",
|
||||
"description": "Thoroughly tested and verified by the team. But things might change, this is not a guarantee."
|
||||
},
|
||||
"kycLevel": 0,
|
||||
"kycLevelInfo": {
|
||||
"value": 0,
|
||||
"name": "Guaranteed no KYC",
|
||||
"description": "Terms explicitly state KYC will never be requested."
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"name": "Exchange",
|
||||
"slug": "exchange"
|
||||
}
|
||||
],
|
||||
"serviceUrls": [
|
||||
"https://example.com",
|
||||
"http://c9ikae0fdidzh1ufrzp022e5uqfvz6ofxlkycz59cvo6fdxjgx7ekl9e.onion"
|
||||
],
|
||||
"tosUrls": ["https://example.com/terms-of-service"],
|
||||
"kycnotmeUrl": "https://kycnot.me/service/bisq"
|
||||
}
|
||||
```
|
||||
|
||||
### Error Responses
|
||||
|
||||
**404 Not Found**: Service not found
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "Service not found"
|
||||
}
|
||||
```
|
||||
|
||||
**400 Bad Request**: Invalid input parameters
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "Validation error message"
|
||||
}
|
||||
```
|
||||
|
||||
**500 Internal Server Error**: Server error
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "Internal server error"
|
||||
}
|
||||
```
|
||||
73
web/src/pages/docs/karma.mdx
Normal file
73
web/src/pages/docs/karma.mdx
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
layout: ../../layouts/MarkdownLayout.astro
|
||||
title: How does karma work?
|
||||
description: "KYCnot.me has a user karma system, here's how it works"
|
||||
icon: 'ri:hearts-line'
|
||||
author: KYCnot.me
|
||||
pubDate: 2025-05-15
|
||||
---
|
||||
|
||||
import KarmaUnlocksTable from '../../components/KarmaUnlocksTable.astro'
|
||||
|
||||
[KYCnot.me](https://kycnot.me) implements a karma system to encourage quality contributions and maintain community standards. Users can earn (or lose) karma points through various interactions on the platform, primarily through their comments on services.
|
||||
|
||||
## How to Earn Karma
|
||||
|
||||
There are several ways to earn karma points:
|
||||
|
||||
1. **Comment Approval** (+1 point)
|
||||
|
||||
- When your comment moves from 'unmoderated' to 'approved' status
|
||||
- This is the basic reward for contributing a valid comment
|
||||
|
||||
2. **Comment Verification** (+5 points)
|
||||
|
||||
- When your comment is marked as 'verified'
|
||||
- This is a significant reward for providing particularly valuable or verified information
|
||||
|
||||
3. **Upvotes**
|
||||
- Each upvote on your comment adds +1 to your karma
|
||||
- Similarly, each downvote reduces your karma by -1
|
||||
- This allows the community to reward helpful contributions
|
||||
|
||||
## Karma Penalties
|
||||
|
||||
The system also includes penalties to discourage spam and low-quality content:
|
||||
|
||||
1. **Spam Detection** (-10 points)
|
||||
- If your comment is marked as suspicious/spam
|
||||
- This is a significant penalty to discourage spam behavior
|
||||
- If the spam mark is removed, the 10 points are restored
|
||||
|
||||
## Karma Tracking
|
||||
|
||||
The system maintains a detailed record of all karma changes through:
|
||||
|
||||
1. **Karma Transactions**
|
||||
|
||||
- Every karma change is recorded as a transaction
|
||||
- Each transaction includes:
|
||||
- The action that triggered it
|
||||
- The number of points awarded/deducted
|
||||
- A description of why the karma changed
|
||||
- The related comment (if applicable)
|
||||
|
||||
2. **Total Karma**
|
||||
- Your total karma is displayed on your profile
|
||||
- It's the sum of all your karma transactions
|
||||
- This score helps establish your reputation in the community
|
||||
|
||||
## Impact of Karma
|
||||
|
||||
Your karma score is more than just a number - it's a reflection of your contributions to the community. Higher karma scores indicate:
|
||||
|
||||
- Active participation in the community
|
||||
- History of providing valuable information
|
||||
- Trustworthiness of your contributions
|
||||
- Commitment to community standards
|
||||
|
||||
The karma system helps maintain the quality of discussions and encourages meaningful contributions to the platform.
|
||||
|
||||
## Unlocking Actions with Karma
|
||||
|
||||
<KarmaUnlocksTable />
|
||||
Reference in New Issue
Block a user