# Project export: Macro - Swarm of Verifiable Agents for Portfolio Management

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: TreeHacks 2025
- Tagline: Macro is an autonomous service where users deploy portfolio strategies verified by deep-research agents, shown by visualization agents, & deployed on mainnet, handled by on-chain interaction agents.
- Devpost: https://devpost.com/software/macro-swarm-of-verifiable-agents-for-portfolio-management
- GitHub: https://github.com/shrithan1/macro
- Video: https://www.youtube.com/embed/cclx81cHVtc?enablejsapi=1&hl=en_US&rel=0&start=&version=3&wmode=transparent
- Team: 1 GitHub contributor(s) — shrithan1 (117 commits)

## Devpost submission (written by the team)

### Overview

Presentation and System Diagram here https://www.canva.com/design/DAGfRmOzNu0/PZ4iKkg___TK_BqaJIlxKw/edit?utm_content=DAGfRmOzNu0&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton

### Inspiration

As a college student, I’ve developed a considerable interest in stocks and financial markets. Traditional institutional systems create significant barriers to entry, including KYC requirements, brokerage restrictions, and other friction points. That’s where Macro comes in. Macro empowers anyone to: Ideate trading strategies Validate them with deep-research agents Seamlessly deploy them autonomously onto mainnet networks such as Base Hackathon Experience Throughout this hackathon, I learned how to incorporate EigenLayer AVS to validate transactions and outputs generated by various agents (on-chain agents and deep research agents, respectively). Previously, I was not too familiar with EigenLayer technologies; however, I found great enjoyment hacking away at them this weekend.

### What it does

Macro empowers anyone to: Develop and validate trading strategies through deep-research agents Visualize complex trading strategies through intuitive block-based representations Deploy strategies autonomously using on-chain agents Trade real-world stocks using pegged tokens and cryptocurrencies

### How we built it

Research and Strategy Development Implemented deep research agents that scrape online data using firecrawl and create sophisticated trading strategies Developed multilevel feedback loops to continuously refine and optimize strategies Integrated investment thesis validation from agent output Visualization System Created visual agents that transform complex outputted trading strategies into digestible block-based representations Designed an intuitive interface that makes strategy comprehension accessible to users of all experience levels Deployment Infrastructure Leveraged Coinbase Agent Kit with custom functionality for ERC-20 token exchanges Developed smart contracts that peg tokens to real-world asset prices using Pyth Oracle Implemented strategy deployment through on-chain agents Integrated Eigenlayer AVS for on-chain validation and signing of all agent interactions Technical Architecture Built a concurrent agent management system to handle multiple contexts and pipelines Integrated Coinbase tooling to offload tasks to different agent groups Created custom extensions to the Coinbase Agent Kit for enhanced trading capabilities

### Challenges we ran into

AVS Implementation: Limited documentation for Eigenlayer AVS integration made implementation challenging to develop on. Agent Kit Customization: Extending Coinbase Agent Kit's functionality required significant custom development. Coinbase Agent Kit’s functionality is not very documented either, which led to a lot of trial and error. Product Creation Roadmap: The project was created from the middle out, starting with the creation of workflows to the use of Agent Kit to the implementation of deep research agents.

### Accomplishments we're proud of

Deploying a final product that works!

### What we learned

Blockchain Agent Interaction: How to get agents to interact on blockchains and spend real money! Local API Development: Spinning up local servers for API development and managing both Nextjs serverless functions and local servers. Eigenlayer Integration: How to build on Eigenlayer! AVS development was tough, but finally being able to deploy an AVS was very fun to work with.

### What's next

Expanding the range of supported assets and strategies Developing more sophisticated visualization tools Strengthening security and validation mechanisms for on-chain agents

## README (from the GitHub repository)

We put stocks on chain lmao

## Detected evidence (automated analysis)

Indexed codebase: 3414 recognized source files, 21983 KB.
- Go (language) — detected in the code
- JavaScript (language) — detected in the code
- Python (language) — detected in the code
- Rust (language) — detected in the code
- Solidity (language) — detected in the code
- TypeScript (language) — detected in the code
- Next.js (technology) — claimed on Devpost, not found in the code
- Node.js (technology) — claimed on Devpost, not found in the code
- React (technology) — claimed on Devpost, not found in the code
- Vercel (technology) — claimed on Devpost, not found in the code
- AI coding agent: Cursor — evidence: config files committed to the repository

## Codebase structure (from repository index)

### Files (120 of 3870)

```
.cursorrules
.gitignore
agentkit/.eslintrc.base.json
agentkit/.prettierignore
agentkit/.prettierrc
agentkit/CONTRIBUTING-PYTHON.md
agentkit/CONTRIBUTING-TYPESCRIPT.md
agentkit/CONTRIBUTING.md
agentkit/jest.config.base.cjs
agentkit/LICENSE.md
agentkit/README.md
agentkit/SECURITY.md
agentkit/WISHLIST.md
AVS/portfolioavs/.dockerignore
AVS/portfolioavs/abis/ECDSAStakeRegistry.json
AVS/portfolioavs/abis/HelloWorldServiceManager.json
AVS/portfolioavs/abis/IAVSDirectory.json
AVS/portfolioavs/abis/IDelegationManager.json
AVS/portfolioavs/Cargo.lock
AVS/portfolioavs/Cargo.toml
AVS/portfolioavs/contracts/.gitignore
AVS/portfolioavs/contracts/anvil/deploy-el.sh
AVS/portfolioavs/contracts/anvil/deploy-helloworld.sh
AVS/portfolioavs/contracts/anvil/deploy-portfolio.sh
AVS/portfolioavs/contracts/config/core/31337.json
AVS/portfolioavs/contracts/config/hello-world/31337.json
AVS/portfolioavs/contracts/deployments/core/31337.json
AVS/portfolioavs/contracts/deployments/hello-world/31337.json
AVS/portfolioavs/contracts/foundry.toml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.github/ISSUE_TEMPLATE/bug_report.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.github/ISSUE_TEMPLATE/design.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.github/ISSUE_TEMPLATE/feature_request.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.github/ISSUE_TEMPLATE/test.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.github/workflows/commitlint.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.github/workflows/tests.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.gitignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.gitmodules
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/.husky/commit-msg
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/commitlint.config.js
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/CONTRIBUTING.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/foundry.toml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/go.mod
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/go.sum
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.devcontainer/devcontainer.json
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.devcontainer/Dockerfile
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.devcontainer/install.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.dockerignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.gitattributes
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/bug_report.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/design.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/feature_request.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/implement.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/research.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/task.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/ISSUE_TEMPLATE/test_implementation.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/certora-prover.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/check-compilation.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/commitlint.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/coverage.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/deploy-local.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/format.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/storage-report.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.github/workflows/testinparallel.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.gitignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.gitmodules
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.husky/commit-msg
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.prettierrc
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.solhint.json
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.solhintignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/.vscode/tasks.json
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/bin/compile-bindings.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/bin/install-deps.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/bin/pre-commit.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/bin/storage-report.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/DelegationManagerHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/EigenPodHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/EigenPodManagerHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/PausableHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/SlasherHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/StrategyManagerHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/harnesses/StructuredLinkedListHarness.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/scripts/core/verifyDelegationManager.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/scripts/core/verifyStrategyManager.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/scripts/permissions/verifyPausable.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/scripts/pods/verifyEigenPod.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/scripts/pods/verifyEigenPodManager.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/scripts/strategies/verifyStrategyBase.sh
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/core/DelegationManager.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/core/Slasher.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/core/StrategyManager.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/libraries/StructuredLinkedList.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/permissions/Pausable.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/pods/EigenPod.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/pods/EigenPodManager.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/certora/specs/strategies/StrategyBase.spec
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/commitlint.config.js
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/config.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/CONTRIBUTING.md
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/Dockerfile
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/foundry.toml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/go.mod
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/go.sum
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/hardhat.config.ts
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/.github/workflows/build.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/.gitignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/default.nix
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/demo/demo.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/LICENSE
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/Makefile
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/package.json
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/test.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/ds-test/src/test.t.sol
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/.github/workflows/ci.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/.gitignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/.gitmodules
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/foundry.toml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/lib/ds-test/.github/workflows/build.yml
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/lib/ds-test/.gitignore
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/lib/ds-test/default.nix
AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/forge-std/lib/ds-test/demo/demo.sol
[3750 more files omitted for size]
```

### Dependencies

- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/go.mod: github.com/bits-and-blooms/bitset@v1.5.0, github.com/consensys/bavard@v0.1.13, github.com/consensys/gnark-crypto@v0.11.1, github.com/mmcloughlin/addchain@v0.4.0, golang.org/x/sys@v0.2.0, rsc.io/tmplfunc@v0.0.3
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/go.mod: github.com/bits-and-blooms/bitset@v1.10.0, github.com/btcsuite/btcd/btcec/v2@v2.2.0, github.com/consensys/bavard@v0.1.13, github.com/consensys/gnark-crypto@v0.12.1, github.com/crate-crypto/go-kzg-4844@v1.0.0, github.com/deckarep/golang-set/v2@v2.1.0, github.com/decred/dcrd/dcrec/secp256k1/v4@v4.0.1, github.com/ethereum/c-kzg-4844@v1.0.0, github.com/ethereum/go-ethereum@v1.14.0, github.com/fsnotify/fsnotify@v1.6.0, github.com/go-ole/go-ole@v1.3.0, github.com/google/uuid@v1.3.0, github.com/gorilla/websocket@v1.4.2, github.com/holiman/uint256@v1.2.4, github.com/Microsoft/go-winio@v0.6.1, github.com/mmcloughlin/addchain@v0.4.0, github.com/shirou/gopsutil@v3.21.4-0.20210419000835-c7a38de76ee5+incompatible, github.com/StackExchange/wmi@v1.2.1, github.com/supranational/blst@v0.3.11, github.com/tklauser/go-sysconf@v0.3.12, github.com/tklauser/numcpus@v0.6.1, golang.org/x/crypto@v0.22.0, golang.org/x/mod@v0.17.0, golang.org/x/sync@v0.7.0, golang.org/x/sys@v0.19.0, golang.org/x/tools@v0.20.0, rsc.io/tmplfunc@v0.0.3
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/package.json: @changesets/changelog-github@^0.4.8, @changesets/cli@^2.26.0, @changesets/pre@^1.0.14, @changesets/read@^0.5.9, @nomicfoundation/hardhat-network-helpers@^1.0.3, @nomiclabs/hardhat-truffle5@^2.0.5, @nomiclabs/hardhat-web3@^2.0.0, @openzeppelin/docs-utils@^0.1.3, @openzeppelin/test-helpers@^0.5.13, @openzeppelin/upgrades-core@^1.20.6, chai@^4.2.0, eslint@^8.30.0, eslint-config-prettier@^8.5.0, eth-sig-util@^3.0.0, ethereumjs-util@^7.0.7, ethereumjs-wallet@^1.0.1, glob@^8.0.3, graphlib@^2.1.8, hardhat@^2.9.1, hardhat-exposed@^0.3.3, hardhat-gas-reporter@^1.0.4, hardhat-ignore-warnings@^0.2.0, keccak256@^1.0.2, lodash.startcase@^4.4.0, lodash.zip@^4.2.0, merkletreejs@^0.2.13, micromatch@^4.0.2, p-limit@^3.1.0, prettier@^2.8.1, prettier-plugin-solidity@^1.1.0, rimraf@^3.0.2, semver@^7.3.5, solhint@^3.3.6, solidity-ast@^0.4.25, solidity-coverage@^0.8.0, solidity-docgen@^0.6.0-beta.29, undici@^5.22.1, web3@^1.3.0, yargs@^17.0.0
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/requirements.txt: certora-cli@==3.6.4
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable/package.json: @nomiclabs/hardhat-truffle5@^2.0.5, @nomiclabs/hardhat-web3@^2.0.0, @openzeppelin/docs-utils@^0.1.0, @openzeppelin/test-helpers@^0.5.13, chai@^4.2.0, eslint@^7.32.0, eslint-config-standard@^16.0.3, eslint-plugin-import@^2.25.4, eslint-plugin-mocha@^10.0.3, eslint-plugin-node@^11.1.0, eslint-plugin-promise@^5.2.0, eth-sig-util@^3.0.0, ethereumjs-util@^7.0.7, ethereumjs-wallet@^1.0.1, graphlib@^2.1.8, hardhat@^2.9.1, hardhat-gas-reporter@^1.0.4, keccak256@^1.0.2, lodash.startcase@^4.4.0, lodash.zip@^4.2.0, merkletreejs@^0.2.13, micromatch@^4.0.2, prettier@^2.3.0, prettier-plugin-solidity@^1.0.0-beta.16, rimraf@^3.0.2, semver@^7.3.5, solhint@^3.3.6, solidity-ast@^0.4.25, solidity-coverage@^0.7.18, solidity-docgen@^0.5.3, web3@^1.3.0, yargs@^17.0.0
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/package.json: @changesets/changelog-github@^0.4.8, @changesets/cli@^2.26.0, @changesets/pre@^1.0.14, @changesets/read@^0.5.9, @nomicfoundation/hardhat-network-helpers@^1.0.3, @nomiclabs/hardhat-truffle5@^2.0.5, @nomiclabs/hardhat-web3@^2.0.0, @openzeppelin/docs-utils@^0.1.3, @openzeppelin/test-helpers@^0.5.13, @openzeppelin/upgrades-core@^1.20.6, chai@^4.2.0, eslint@^8.30.0, eslint-config-prettier@^8.5.0, eth-sig-util@^3.0.0, ethereumjs-util@^7.0.7, ethereumjs-wallet@^1.0.1, glob@^8.0.3, graphlib@^2.1.8, hardhat@^2.9.1, hardhat-exposed@^0.3.3, hardhat-gas-reporter@^1.0.4, hardhat-ignore-warnings@^0.2.0, keccak256@^1.0.2, lodash.startcase@^4.4.0, lodash.zip@^4.2.0, merkletreejs@^0.2.13, micromatch@^4.0.2, p-limit@^3.1.0, prettier@^2.8.1, prettier-plugin-solidity@^1.1.0, rimraf@^3.0.2, semver@^7.3.5, solhint@^3.3.6, solidity-ast@^0.4.25, solidity-coverage@^0.8.0, solidity-docgen@^0.6.0-beta.29, undici@^5.22.1, web3@^1.3.0, yargs@^17.0.0
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/requirements.txt: certora-cli@==3.6.4
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts/package.json: @nomiclabs/hardhat-truffle5@^2.0.5, @nomiclabs/hardhat-web3@^2.0.0, @openzeppelin/docs-utils@^0.1.0, @openzeppelin/test-helpers@^0.5.13, chai@^4.2.0, eslint@^7.32.0, eslint-config-standard@^16.0.3, eslint-plugin-import@^2.25.4, eslint-plugin-mocha@^10.0.3, eslint-plugin-node@^11.1.0, eslint-plugin-promise@^5.2.0, eth-sig-util@^3.0.0, ethereumjs-util@^7.0.7, ethereumjs-wallet@^1.0.1, graphlib@^2.1.8, hardhat@^2.9.1, hardhat-gas-reporter@^1.0.4, keccak256@^1.0.2, lodash.startcase@^4.4.0, lodash.zip@^4.2.0, merkletreejs@^0.2.13, micromatch@^4.0.2, prettier@^2.3.0, prettier-plugin-solidity@^1.0.0-beta.16, rimraf@^3.0.2, semver@^7.3.5, solhint@^3.3.6, solidity-ast@^0.4.25, solidity-coverage@^0.7.18, solidity-docgen@^0.5.3, web3@^1.3.0, yargs@^17.0.0
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/package.json: @commitlint/cli@^18.2.0, @commitlint/config-conventional@^18.1.0, @types/yargs@^17.0.28, chalk@^4.1.0, dotenv@^16.3.1, fs@^0.0.1-security, hardhat@^2.22.4, hardhat-preprocessor@^0.1.5, husky@^8.0.3, solhint@5.0.1, solidity-docgen@^0.6.0-beta.32, ts-node@^10.9.1, typescript@^4.9.4, yargs@^17.7.2
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/requirements.txt: certora-cli@==3.6.4
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/eigenlayer-contracts/testHelpers/package.json: keccak256@^1.0.6, merkletreejs@^0.2.31, web3@^1.7.1
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/package.json: @nomiclabs/hardhat-truffle5@^2.0.5, @nomiclabs/hardhat-web3@^2.0.0, @openzeppelin/docs-utils@^0.1.0, @openzeppelin/test-helpers@^0.5.13, chai@^4.2.0, eslint@^7.32.0, eslint-config-standard@^16.0.3, eslint-plugin-import@^2.25.4, eslint-plugin-mocha@^10.0.3, eslint-plugin-node@^11.1.0, eslint-plugin-promise@^5.2.0, eth-sig-util@^3.0.0, ethereumjs-util@^7.0.7, ethereumjs-wallet@^1.0.1, graphlib@^2.1.8, hardhat@^2.9.1, hardhat-gas-reporter@^1.0.4, keccak256@^1.0.2, lodash.startcase@^4.4.0, lodash.zip@^4.2.0, merkletreejs@^0.2.13, micromatch@^4.0.2, prettier@^2.3.0, prettier-plugin-solidity@^1.0.0-beta.16, rimraf@^3.0.2, semver@^7.3.5, solhint@^3.3.6, solidity-ast@^0.4.25, solidity-coverage@^0.7.18, solidity-docgen@^0.5.3, web3@^1.3.0, yargs@^17.0.0
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/lib/openzeppelin-contracts/package.json: @nomiclabs/hardhat-truffle5@^2.0.5, @nomiclabs/hardhat-web3@^2.0.0, @openzeppelin/docs-utils@^0.1.0, @openzeppelin/test-helpers@^0.5.13, chai@^4.2.0, eslint@^7.32.0, eslint-config-standard@^16.0.3, eslint-plugin-import@^2.25.4, eslint-plugin-mocha@^10.0.3, eslint-plugin-node@^11.1.0, eslint-plugin-promise@^5.2.0, eth-sig-util@^3.0.0, ethereumjs-util@^7.0.7, ethereumjs-wallet@^1.0.1, graphlib@^2.1.8, hardhat@^2.9.1, hardhat-gas-reporter@^1.0.4, keccak256@^1.0.2, lodash.startcase@^4.4.0, lodash.zip@^4.2.0, merkletreejs@^0.2.13, micromatch@^4.0.2, prettier@^2.3.0, prettier-plugin-solidity@^1.0.0-beta.16, rimraf@^3.0.2, semver@^7.3.5, solhint@^3.3.6, solidity-ast@^0.4.25, solidity-coverage@^0.7.18, solidity-docgen@^0.5.3, web3@^1.3.0, yargs@^17.0.0
- AVS/portfolioavs/contracts/lib/eigenlayer-middleware/package.json: @commitlint/cli@^18.2.0, @commitlint/config-conventional@^18.1.0, husky@^8.0.3
- AVS/portfolioavs/operator/rust/crates/operator/Cargo.toml: alloy@0.4.2, chrono@0.4.38, dotenv@0.15.0, eigen-client-elcontracts, eigen-logging, eigen-testing-utils, eigen-types, eigen-utils, eyre@0.6.12, futures@0.3.30, futures-util@0.3, hello-world-utils, hex@0.4.3, num-bigint@0.4.4, once_cell@1.19.0, rand@0.8.5, reqwest@0.12.9, serde@1.0.214, serde_json@1.0.121, serial_test@3.1.1, tokio, tracing@0.1.40
- AVS/portfolioavs/operator/rust/crates/utils/Cargo.toml: alloy@0.4.2, eyre@0.6.12, serde, serde_json@1.0.121
- AVS/portfolioavs/package.json: @types/jest@^29.5.13, @types/node@^20.12.12, @viem/anvil@^0.0.10, dotenv@^10.0.0, ethers@^6.13.2, jest@^29.7.0, ts-jest@^29.2.5, ts-node@^10.9.2, typescript@^5.4.5

### Recent commits (newest first)

- deep learning agent
- Merge pull request #15 from shrithan1/styling
- final
- Merge pull request #14 from shrithan1/styling
- depth fixes on company logos in landing page
- add this shit working fr omg im going to cry its over its over its over
- add placeholders
- working
- added markdown
- added stuff ts:
- Merge pull request #13 from shrithan1/finalPage
- added button and transitions
- Merge pull request #12 from shrithan1/BetterNodes
- Merge branch 'main' into BetterNodes
- add the connector nodes
- add working images
- added the custom block nodes
- added load modal
- add typing
- added search progress bar

## Key source files (fetched from GitHub, selected and truncated for size)

### agentkit/SECURITY.md

```markdown
# Security Policy

The Coinbase team takes security seriously. Please do not file a public ticket discussing a potential vulnerability.

Please report your findings through our [HackerOne][1] program.

[1]: https://hackerone.com/coinbase

```

### agentkit/LICENSE.md

```markdown
Apache-2.0 License

Copyright 2024 Coinbase
    
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

```

### AVS/portfolioavs/Dockerfile

```
FROM node:22

WORKDIR /app

COPY package.json ./
COPY tsconfig.json ./
RUN npm install

COPY . .

CMD ["npm", "start"]

```

### AVS/portfolioavs/Cargo.toml

```
[workspace]
members = ["operator/rust/crates/operator/",
"operator/rust/crates/utils/"
]

resolver = "2"

[workspace.package]
version = "0.0.1-alpha"
edition = "2021"
authors = ["Eigen Layer contributors"]
rust-version = "1.79"
repository = "https://github.com/Layr-Labs/hello-world-avs"
homepage = ""
license-file = "LICENSE"


[workspace.lints]
rust.missing_debug_implementations = "warn"
rust.missing_docs = "warn"
rust.unreachable_pub = "warn"
rust.unused_must_use = "deny"
rust.rust_2018_idioms = "deny"
rustdoc.all = "warn"


[workspace.dependencies]

#tokio
tokio = {version = "1.37.0" , features = ["test-util", "full","sync","rt-multi-thread", "macros"] }

serde = "1.0.214"

hello-world-avs-operator = {path = "operator/rust/crates/operator"}
hello-world-utils = {path = "operator/rust/crates/utils"}
#eigensdk-rs
eigen-client-elcontracts = {git = "https://github.com/Layr-labs/eigensdk-rs", rev = "f3a9f32"}
eigen-types = {git = "https://github.com/Layr-labs/eigensdk-rs", rev = "f3a9f32"}
eigen-utils = {git = "https://github.com/Layr-labs/eigensdk-rs", rev = "f3a9f32"}
eigen-logging = {git = "https://github.com/Layr-labs/eigensdk-rs", rev = "f3a9f32"}
eigen-testing-utils = {git = "https://github.com/Layr-labs/eigensdk-rs", rev = "f3a9f32"}





```

### AVS/portfolioavs/package.json

```
{
  "name": "hello-world-avs",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start:operator": "ts-node operator/index.ts",
    "start:traffic": "ts-node operator/createNewTasks.ts",
    "start:anvil": "anvil",
    "start:anvil-quick": "anvil --block-time 0.01",
    "deploy:core": "cd contracts && forge script script/DeployEigenLayerCore.s.sol --rpc-url http://localhost:8545 --broadcast --optimize --optimizer-runs 200 --via-ir",
    "deploy:hello-world": "cd contracts && forge script script/HelloWorldDeployer.s.sol --rpc-url http://localhost:8545 --broadcast --optimize --optimizer-runs 200 --via-ir",
    "deploy:core-debug": "cd contracts && forge script script/DeployEigenLayerCore.s.sol --rpc-url http://localhost:8545 --broadcast --revert-strings debug --optimize --optimizer-runs 200 --via-ir",
    "deploy:hello-world-debug": "cd contracts && forge script script/HelloWorldDeployer.s.sol --rpc-url http://localhost:8545 --broadcast --revert-strings debug",
    "create-payments-root": "cd contracts && forge script script/SetupPayments.s.sol --rpc-url http://localhost:8545 --broadcast -v --sender 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
    "claim-payments": "cd contracts && forge script script/SetupPayments.s.sol --rpc-url http://localhost:8545 --broadcast --sig \"executeProcessClaim()\" -v --sender 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
    "create-operator-directed-payments-root": "cd contracts && forge script script/SetupPayments.s.sol --rpc-url http://localhost:8545 --broadcast --sig \"runOperatorDirected()\" -v --sender 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
    "build": "cd contracts && forge build",
    "extract:abis": "node utils/abis.js",
    "test": "NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" npx jest"
  },
  "dependencies": {
    "dotenv": "^10.0.0",
    "ethers": "^6.13.2"
  },
  "devDependencies": {
    "@types/jest": "^29.5.13",
    "@types/node": "^20.12.12",
    "@viem/anvil": "^0.0.10",
    "jest": "^29.7.0",
    "ts-jest": "^29.2.5",
    "ts-node": "^10.9.2",
    "typescript": "^5.4.5"
  }
}

```

### AVS/portfolioavs/contracts/lib/eigenlayer-middleware/package.json

```
{
  "name": "eigenlayer-middleware",
  "devDependencies": {
    "husky": "^8.0.3",
    "@commitlint/cli": "^18.2.0",
    "@commitlint/config-conventional": "^18.1.0"
  }
}

```

### AVS/portfolioavs/contracts/lib/eigenlayer-middleware/go.mod

```
module github.com/Layr-Labs/ffi

go 1.20

require (
	github.com/bits-and-blooms/bitset v1.5.0 // indirect
	github.com/consensys/bavard v0.1.13 // indirect
	github.com/consensys/gnark-crypto v0.11.1 // indirect
	github.com/mmcloughlin/addchain v0.4.0 // indirect
	golang.org/x/sys v0.2.0 // indirect
	rsc.io/tmplfunc v0.0.3 // indirect
)

```

### AVS/portfolioavs/contracts/lib/forge-std/package.json

```
{
  "name": "forge-std",
  "version": "1.9.5",
  "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.",
  "homepage": "https://book.getfoundry.sh/forge/forge-std",
  "bugs": "https://github.com/foundry-rs/forge-std/issues",
  "license": "(Apache-2.0 OR MIT)",
  "author": "Contributors to Forge Standard Library",
  "files": [
    "src/**/*"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/foundry-rs/forge-std.git"
  }
}

```

### AVS/portfolioavs/operator/rust/crates/utils/Cargo.toml

```
[package]
name = "hello-world-utils"
description = "Hello world avs operator start and spam utilities"

version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license-file.workspace = true

[dependencies]
alloy = { version = "0.4.2", features = ["full"] }
serde.workspace = true
serde_json = "1.0.121"
eyre = "0.6.12"

```

### AVS/portfolioavs/operator/rust/crates/operator/Cargo.toml

```
[package]
name = "hello-world-avs-operator"
description = "Hello world avs operator start and spam utilities"

version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license-file.workspace = true

[dependencies]
alloy = { version = "0.4.2", features = ["full"] }
serde_json = "1.0.121"
num-bigint = "0.4.4"
reqwest = "0.12.9"
hex = "0.4.3"
once_cell = "1.19.0"
futures = "0.3.30"
serde = "1.0.214"


#eigensdk-rs
eigen-client-elcontracts.workspace = true
eigen-types.workspace = true
eigen-utils.workspace = true
eigen-logging.workspace = true
eigen-testing-utils.workspace = true

hello-world-utils.workspace = true

#misc 
dotenv = "0.15.0"
rand = "0.8.5"
chrono = "0.4.38"
tracing = "0.1.40"
futures-util = "0.3"
eyre = "0.6.12"
#tokio
tokio = {workspace = true, features =["full"]}
[lints]
workspace = true


[dev-dependencies]
serial_test = "3.1.1"

[[bin]]
name = "start_operator"
path = "src/start_operator.rs"


[[bin]]
name = "spam_tasks"
path = "src/spam_tasks.rs"
```

[3331 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]