tweet-generator

Tweet generation for crypto/tech. Ted's voice: sardonic, contrarian, ships code.

  • 4 Entrypoints
  • v0.1.0 Version
  • Enabled Payments
tweets.unabotter.xyz

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

write

Invoke

AI-powered tweet generation with Ted's authentic voice. Contrarian, sardonic, ships code.

Pricing Invoke: 0.10
Network base
Invoke Endpoint POST /entrypoints/write/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "minLength": 1
    },
    "angle": {
      "description": "Specific angle or key point",
      "type": "string"
    },
    "style": {
      "default": "insight",
      "type": "string",
      "enum": [
        "contrarian",
        "insight",
        "observation",
        "technical",
        "philosophical"
      ]
    }
  },
  "required": [
    "topic",
    "style"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://tweets.unabotter.xyz/entrypoints/write/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "topic": "string",
        "style": "contrarian"
      }
    }
  '

thread

Invoke

AI-powered Twitter thread generation. Structured narrative with Ted's analytical edge.

Pricing Invoke: 0.50
Network base
Invoke Endpoint POST /entrypoints/thread/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "minLength": 1
    },
    "keyPoints": {
      "minItems": 1,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Key points to cover"
    },
    "framework": {
      "default": "lessons_learned",
      "type": "string",
      "enum": [
        "problem_solution",
        "lessons_learned",
        "contrarian"
      ]
    }
  },
  "required": [
    "topic",
    "keyPoints",
    "framework"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://tweets.unabotter.xyz/entrypoints/thread/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "topic": "string",
        "keyPoints": [
          "string"
        ],
        "framework": "problem_solution"
      }
    }
  '

trend-pack

Invoke

PREMIUM: Research current trends in your niche, analyze viral content, and generate a pack of timely tweets. Real-time web research included.

Pricing Invoke: 0.75
Network base
Invoke Endpoint POST /entrypoints/trend-pack/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "niche": {
      "type": "string",
      "minLength": 2
    },
    "contentGoal": {
      "default": "engagement",
      "type": "string",
      "enum": [
        "engagement",
        "followers",
        "authority",
        "viral"
      ]
    },
    "count": {
      "default": 5,
      "type": "number",
      "minimum": 1,
      "maximum": 10
    }
  },
  "required": [
    "niche",
    "contentGoal",
    "count"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://tweets.unabotter.xyz/entrypoints/trend-pack/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "niche": "string",
        "contentGoal": "engagement",
        "count": 1
      }
    }
  '

viral

Invoke

Generate 3 viral hook variations with psychological analysis. Pick wisely.

Pricing Invoke: 0.25
Network base
Invoke Endpoint POST /entrypoints/viral/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "minLength": 1
    },
    "targetAudience": {
      "description": "Who should this resonate with",
      "type": "string"
    }
  },
  "required": [
    "topic"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://tweets.unabotter.xyz/entrypoints/viral/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "topic": "string"
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…