Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
88699c8
creating plan
Oct 31, 2025
04e4f57
updating plan to account for data sizes and 100kb free turbo
Nov 1, 2025
5f0ceb7
final plan
Nov 1, 2025
4f7777b
final plan
Nov 1, 2025
6090d26
feat: extract ERC-8004 formatting to shared utility
Nov 1, 2025
e25c3b9
feat: implement ArweaveClient with Turbo SDK and parallel gateway ret…
Nov 1, 2025
9c7ef68
feat: integrate ArweaveClient into SDK (Phase 3)
Nov 2, 2025
a850072
docs: update implementation checklist with Phase 3 completion
Nov 2, 2025
969ffe7
feat: add Agent.registerArweave() method and exports (Phase 4-5)
Nov 2, 2025
9e35e8f
feat: add Phase 7 testing for Arweave integration
Nov 2, 2025
9284fbf
adding tagging plan + verifiability
Nov 2, 2025
237e6c1
feat: add Arweave tagging implementation with comprehensive metadata
Nov 2, 2025
573e28e
summaring working in planning doc
Nov 2, 2025
4a18cd1
Remove temporary GraphQL type workarounds
Nov 5, 2025
01aa184
Simplify Arweave configuration by removing testnet and token parameters
Nov 6, 2025
6a31471
removing Arweave planning file
Nov 6, 2025
befec8b
Add documentation for Arweave storage integration
Nov 6, 2025
a97acf8
feat: add Arweave feedback storage with comprehensive tagging
Nov 12, 2025
07927d9
fix: handle Wallet and Signer types in ArweaveClient initialization
Nov 17, 2025
44acd32
adding arweave to package.json and updating comments in sdk
Nov 20, 2025
b95130f
Removing Arweave enum in favour of arweavePrivateKey in SDK initializ…
Dec 12, 2025
6aac7e2
chore: bumping turbo version to reduce final build size
Dec 17, 2025
8f78c60
fix: replacing .js extensions on imports
Dec 17, 2025
b99c717
refactor: implement lazy loading for ArweaveClient with dynamic imp…
Dec 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ npm-debug.log*
# Testing
coverage/
.nyc_output/
tests/agent_registration_*.json

# Temporary files
*.tmp
Expand Down
7 changes: 6 additions & 1 deletion API_REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ interface SDKConfig {
ipfsNodeUrl?: string;
filecoinPrivateKey?: string;
pinataJwt?: string;
// Arweave configuration
arweave?: boolean;
arweavePrivateKey?: string;
// Subgraph configuration
subgraphUrl?: string;
subgraphOverrides?: Record<ChainId, string>;
Expand Down Expand Up @@ -131,6 +134,7 @@ async getReputationSummary(
```typescript
get web3Client(): Web3Client
get ipfsClient(): IPFSClient | undefined
get arweaveClient(): ArweaveClient | undefined
get subgraphClient(): SubgraphClient | undefined
```

Expand Down Expand Up @@ -190,6 +194,7 @@ getRegistrationFile(): RegistrationFile
### Registration Methods
```typescript
async registerIPFS(): Promise<RegistrationFile>
async registerArweave(): Promise<RegistrationFile>
async registerHTTP(agentUri: string): Promise<RegistrationFile>
async setAgentUri(agentUri: string): Promise<void>
```
Expand Down Expand Up @@ -233,7 +238,7 @@ function formatFeedbackId(
type AgentId = string; // Format: "chainId:tokenId"
type ChainId = number;
type Address = string; // Ethereum address (0x-hex format)
type URI = string; // https://... or ipfs://...
type URI = string; // https://..., ipfs://..., or ar://...
type CID = string; // IPFS CID
type Timestamp = number; // Unix timestamp in seconds
type IdemKey = string; // Idempotency key for write operations
Expand Down
26 changes: 23 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ Agent0 SDK v0.31 enables you to:
- **OASF taxonomies** - Advertise standardized skills and domains using the Open Agentic Schema Framework (OASF) taxonomies for better discovery and interoperability
- **Enable permissionless discovery** - Make your agent discoverable by other agents and platforms using rich search by attributes, capabilities, skills, tools, tasks, and x402 support
- **Build reputation** - Give and receive feedback, retrieve feedback history, and search agents by reputation with cryptographic authentication
- **Cross-chain registration** - One-line registration with IPFS nodes, Pinata, Filecoin, or HTTP URIs
- **Public indexing** - Subgraph indexing both on-chain and IPFS data for fast search and retrieval
- **Cross-chain registration** - One-line registration with IPFS nodes, Pinata, Filecoin, Arweave, or HTTP URIs
- **Public indexing** - Subgraph indexing both on-chain and decentralized storage (IPFS/Arweave) data for fast search and retrieval

## ⚠️ Alpha Release

Expand All @@ -28,7 +28,7 @@ Agent0 SDK v0.31 is in **alpha** with bugs and is not production ready. We're ac
- npm or yarn package manager
- Private key for signing transactions (or run in read-only mode)
- Access to an Ethereum RPC endpoint (e.g., Alchemy, Infura)
- (Optional) IPFS provider account (Pinata, Filecoin, or local IPFS node)
- (Optional) Storage provider account (IPFS: Pinata, Filecoin, or local node; or Arweave)

### Install from npm

Expand Down Expand Up @@ -202,6 +202,10 @@ const summary = await sdk.getReputationSummary('84532:123'); // Base Sepolia
### 5. Give and Retrieve Feedback

```typescript
// NOTE: Feedback automatically uses Arweave storage when SDK configured with arweave: true
// Storage priority: Arweave (permanent) → IPFS (if configured) → On-chain only
// The fileURI will be ar://... (Arweave), ipfs://... (IPFS), or undefined (on-chain only)

// Prepare feedback (only score is mandatory)
const feedbackFile = sdk.prepareFeedback(
'11155111:123',
Expand All @@ -215,6 +219,7 @@ const feedbackFile = sdk.prepareFeedback(

// Give feedback
const feedback = await sdk.giveFeedback('11155111:123', feedbackFile);
console.log(feedback.fileURI); // ar://... (Arweave), ipfs://... (IPFS), or undefined

// Search feedback
const feedbackResults = await sdk.searchFeedback(
Expand Down Expand Up @@ -411,6 +416,21 @@ The SDK includes complete OASF v0.8.0 taxonomy files:

Browse these files to find appropriate skill and domain slugs. For more information, see the [OASF specification](https://github.com/agntcy/oasf) and [Release Notes v0.31](RELEASE_NOTES_0.31.md).

## Arweave Storage Configuration

```typescript
// Arweave permanent storage
const sdk = new SDK({
chainId: 11155111,
rpcUrl: '...',
signer: privateKey,
arweave: true,
arweavePrivateKey: 'your-arweave-private-key' // Optional (defaults to signer)
});

// Register with Arweave
await agent.registerArweave();
```
## 🚀 Coming Soon

- Support for validations
Expand Down
Loading