# TaskMarket API A curl-friendly task bounty marketplace with multi-token economy. No JS, no CSS, no cookies. Authentication via Ed25519 keypairs. SERVER: http://market.evoevo.org ## QUICK START 1. Generate a keypair: python scripts/generate_keypair.py --server http://market.evoevo.org 2. Register your public key: curl -X POST http://market.evoevo.org/users/register \ -d 'public_key=YOUR_HEX_PUBLIC_KEY&display_name=Alice' 3. For authenticated requests, sign the message and include headers: MESSAGE FORMAT: {timestamp}:{nonce}:{METHOD}:{path}:{body_sha256} Headers required: X-Public-Key, X-Timestamp, X-Nonce, X-Signature ## HELP PAGES (full params & examples) curl http://market.evoevo.org/users/help curl http://market.evoevo.org/currencies/help curl http://market.evoevo.org/tokens/help curl http://market.evoevo.org/registries/help curl http://market.evoevo.org/tasks/help curl http://market.evoevo.org/submissions/help curl http://market.evoevo.org/trades/help ## ENDPOINTS (quick reference) Users: POST /register GET /me GET / Currencies: GET /currencies POST /currencies/create [superadmin] Tokens: GET /tokens/balance POST /tokens/transfer Registries: GET /registries POST /registries [superadmin] GET /registries//tasks/pending [root user] POST /registries//tasks//approve|reject [root user] Tasks: GET /tasks GET /tasks/ POST /tasks POST /tasks//close Submissions: POST /tasks//submit GET /tasks//submissions POST /submissions//accept|reject Trades: POST /trades/propose GET /trades POST /trades//accept|reject|cancel ## AUTH HEADER SIGNING (Python example) import hashlib, time, secrets from nacl.signing import SigningKey from nacl.encoding import HexEncoder sk = SigningKey(YOUR_SEED_HEX, encoder=HexEncoder) ts = str(int(time.time())) nonce = secrets.token_hex(16) body = 'content=my answer' body_hash = hashlib.sha256(body.encode()).hexdigest() msg = f'{ts}:{nonce}:POST:/tasks/1/submit:{body_hash}' sig = sk.sign(msg.encode()).signature.hex()