diff --git a/packages/cli/package.json b/packages/cli/package.json
index dd661f85..1c200ff4 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -14,7 +14,6 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@plotlink/sdk": "*",
"@supabase/supabase-js": "^2.49.4",
"commander": "^13.1.0",
"viem": "^2.47.2"
diff --git a/packages/cli/src/commands/claim.ts b/packages/cli/src/commands/claim.ts
index b3b799dd..6911576a 100644
--- a/packages/cli/src/commands/claim.ts
+++ b/packages/cli/src/commands/claim.ts
@@ -1,6 +1,6 @@
import type { Command } from "commander";
import { type Address, erc20Abi, formatUnits, isAddress } from "viem";
-import { MCV2_BOND_ADDRESS, mcv2BondAbi } from "@plotlink/sdk";
+import { MCV2_BOND_ADDRESS, mcv2BondAbi } from "../sdk/index.js";
import { buildClient } from "../sdk.js";
export function registerClaim(program: Command): void {
diff --git a/packages/cli/src/commands/status.ts b/packages/cli/src/commands/status.ts
index 005918b4..0f6a738e 100644
--- a/packages/cli/src/commands/status.ts
+++ b/packages/cli/src/commands/status.ts
@@ -1,7 +1,7 @@
import type { Command } from "commander";
import { createClient } from "@supabase/supabase-js";
import { type Address, erc20Abi, formatUnits } from "viem";
-import { MCV2_BOND_ADDRESS, mcv2BondAbi, STORY_FACTORY_ADDRESS } from "@plotlink/sdk";
+import { MCV2_BOND_ADDRESS, mcv2BondAbi, STORY_FACTORY_ADDRESS } from "../sdk/index.js";
import { buildClient } from "../sdk.js";
import { loadConfig } from "../config.js";
diff --git a/packages/cli/src/sdk.ts b/packages/cli/src/sdk.ts
index ba442edf..b2f00ff1 100644
--- a/packages/cli/src/sdk.ts
+++ b/packages/cli/src/sdk.ts
@@ -1,5 +1,5 @@
-import { PlotLink } from "@plotlink/sdk";
-import type { PlotLinkConfig } from "@plotlink/sdk";
+import { PlotLink } from "./sdk/index.js";
+import type { PlotLinkConfig } from "./sdk/index.js";
import { loadConfig } from "./config.js";
/**
diff --git a/packages/sdk/src/abi.ts b/packages/cli/src/sdk/abi.ts
similarity index 100%
rename from packages/sdk/src/abi.ts
rename to packages/cli/src/sdk/abi.ts
diff --git a/packages/sdk/src/client.ts b/packages/cli/src/sdk/client.ts
similarity index 99%
rename from packages/sdk/src/client.ts
rename to packages/cli/src/sdk/client.ts
index 31c93288..3ba0550d 100644
--- a/packages/sdk/src/client.ts
+++ b/packages/cli/src/sdk/client.ts
@@ -16,7 +16,7 @@ import {
import { privateKeyToAccount } from "viem/accounts";
import { base, baseSepolia } from "viem/chains";
-import { storyFactoryAbi, erc8004Abi, mcv2BondAbi } from "./abi";
+import { storyFactoryAbi, erc8004Abi, mcv2BondAbi } from "./abi.js";
// Named ABI event references (avoid fragile array indexing)
const StorylineCreatedEvent = storyFactoryAbi.find(
@@ -36,8 +36,8 @@ import {
DEPLOYMENT_BLOCK,
DEPLOYMENT_BLOCK_MAINNET,
SUPPORTED_CHAIN_IDS,
-} from "./constants";
-import { uploadWithRetry, type FilebaseConfig } from "./ipfs";
+} from "./constants.js";
+import { uploadWithRetry, type FilebaseConfig } from "./ipfs.js";
// ---------------------------------------------------------------------------
// Types
diff --git a/packages/sdk/src/constants.ts b/packages/cli/src/sdk/constants.ts
similarity index 100%
rename from packages/sdk/src/constants.ts
rename to packages/cli/src/sdk/constants.ts
diff --git a/packages/sdk/src/index.ts b/packages/cli/src/sdk/index.ts
similarity index 83%
rename from packages/sdk/src/index.ts
rename to packages/cli/src/sdk/index.ts
index 659c31e9..296d770c 100644
--- a/packages/sdk/src/index.ts
+++ b/packages/cli/src/sdk/index.ts
@@ -19,7 +19,7 @@
* ```
*/
-export { PlotLink } from "./client";
+export { PlotLink } from "./client.js";
export type {
PlotLinkConfig,
CreateStorylineResult,
@@ -30,8 +30,8 @@ export type {
SetAgentWalletResult,
RoyaltyInfo,
TokenPriceInfo,
-} from "./client";
-export type { FilebaseConfig } from "./ipfs";
+} from "./client.js";
+export type { FilebaseConfig } from "./ipfs.js";
// Re-export constants for callers who need contract addresses
export {
@@ -40,7 +40,7 @@ export {
ERC8004_REGISTRY_ADDRESS,
BASE_SEPOLIA_CHAIN_ID,
BASE_MAINNET_CHAIN_ID,
-} from "./constants";
+} from "./constants.js";
// Re-export ABIs for direct contract reads
-export { mcv2BondAbi } from "./abi";
+export { mcv2BondAbi } from "./abi.js";
diff --git a/packages/sdk/src/ipfs.ts b/packages/cli/src/sdk/ipfs.ts
similarity index 100%
rename from packages/sdk/src/ipfs.ts
rename to packages/cli/src/sdk/ipfs.ts
diff --git a/packages/sdk/package.json b/packages/sdk/package.json
deleted file mode 100644
index c8f8833e..00000000
--- a/packages/sdk/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "@plotlink/sdk",
- "version": "0.1.0",
- "description": "TypeScript SDK for the PlotLink protocol — create storylines, chain plots, register agents, and claim royalties on Base.",
- "type": "module",
- "main": "./dist/index.cjs",
- "module": "./dist/index.js",
- "types": "./dist/index.d.ts",
- "exports": {
- ".": {
- "import": {
- "types": "./dist/index.d.ts",
- "default": "./dist/index.js"
- },
- "require": {
- "types": "./dist/index.d.cts",
- "default": "./dist/index.cjs"
- }
- }
- },
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "tsup",
- "typecheck": "tsc --noEmit",
- "lint": "eslint src/"
- },
- "dependencies": {
- "@aws-sdk/client-s3": "^3.1009.0"
- },
- "devDependencies": {
- "eslint": "^9",
- "tsup": "^8.4.0",
- "typescript": "^5"
- },
- "peerDependencies": {
- "viem": "^2.0.0"
- },
- "license": "MIT"
-}
diff --git a/packages/sdk/tsconfig.json b/packages/sdk/tsconfig.json
deleted file mode 100644
index 1358d953..00000000
--- a/packages/sdk/tsconfig.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2021",
- "lib": ["ES2021"],
- "module": "ESNext",
- "moduleResolution": "bundler",
- "strict": true,
- "esModuleInterop": true,
- "skipLibCheck": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "declaration": true,
- "declarationMap": true,
- "outDir": "./dist",
- "rootDir": "./src",
- "noEmit": true
- },
- "include": ["src/**/*.ts"],
- "exclude": ["node_modules", "dist"]
-}
diff --git a/packages/sdk/tsup.config.ts b/packages/sdk/tsup.config.ts
deleted file mode 100644
index f8613370..00000000
--- a/packages/sdk/tsup.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { defineConfig } from "tsup";
-
-export default defineConfig({
- entry: ["src/index.ts"],
- format: ["esm", "cjs"],
- dts: true,
- splitting: false,
- sourcemap: true,
- clean: true,
- outDir: "dist",
-});
diff --git a/src/components/AgentBuild.tsx b/src/components/AgentBuild.tsx
index f8158641..3019a6b2 100644
--- a/src/components/AgentBuild.tsx
+++ b/src/components/AgentBuild.tsx
@@ -1,6 +1,6 @@
"use client";
-import { ERC8004_REGISTRY } from "../../lib/contracts/constants";
+import { ERC8004_REGISTRY, MCV2_BOND, STORY_FACTORY } from "../../lib/contracts/constants";
function CodeBlock({ children }: { children: string }) {
return (
@@ -17,11 +17,16 @@ export function AgentBuild() {
Install the PlotLink CLI to create and manage storylines from the command line.CLI Quick Start
plotlink create
-Create a new storyline from a content file.
-Create a new storyline from a content file. Requires Filebase credentials.
+plotlink chain
-Chain a new plot to an existing storyline.
-Chain a new plot to an existing storyline. Title is optional.
+plotlink status
-Check storyline status (plot count, deadline, token price).
+Check storyline status (plot count, token price, royalties).
plotlink claim
-Claim accumulated royalties.
-Claim accumulated royalties for a specific storyline token.
+plotlink agent register
Register as an AI agent writer on ERC-8004.
-Use the PlotLink SDK for programmatic integration.
-For advanced integrations, call the indexer endpoints directly after on-chain transactions.
POST /api/index/storyline
-Index a new storyline after on-chain creation.
+Index a new storyline after on-chain creation. Body: {"{ txHash }"}
POST /api/index/plot
-Index a new plot after on-chain chaining.
+Index a new plot after on-chain chaining. Body: {"{ txHash }"}
POST /api/index/trade
-Index a trade for price history tracking.
+Index a trade for price history. Body: {"{ txHash, tokenAddress }"}
POST /api/index/donation
+Index a donation. Body: {"{ txHash }"}
- ERC-8004 Agent Registry: {ERC8004_REGISTRY}
-
- GitHub: realproject7/plotlink-contracts +
StoryFactory
+{STORY_FACTORY}
+ MCV2_Bond (bonding curve)
+{MCV2_BOND}
+ ERC-8004 Agent Registry
+{ERC8004_REGISTRY}
+ + ABIs and source: realproject7/plotlink-contracts