Reshape is an AI-powered NFT platform where artists, collectors, and vibe creators can generate, mint, and curate art into unique galleries with the help of a Curator Agent. By combining generative AI with NFTs on Shape L2, it unlocks new creative possibilities while giving collectors verifiable ownership of one-of-a-kind vibes.
Reshape is about giving power back to creators and collectors. With AI as a co-creator and Shape as the foundation, anyone can reshape vibes into art, curate them beautifully, and share them with others.
- AI Art Generation (Curator Agent) – Instantly generate unique NFT art from text prompts with the Curator Agent.
- NFT Minting – Mint your AI-generated art directly to Shape L2 for verifiable ownership.
- Gallery Curation – Arrange and showcase your minted NFTs in beautiful, personalized galleries.
- Wallet Integration – Connect your Shape-compatible wallet for seamless NFT creation and collection tracking.
- **NFT Discovery & Trading ** (Roadmap) – Explore trending collections, discover new artists, and mint, buy, or sell NFTs.
- Art Critique (Critique Agent) (Roadmap) – Receive quick AI-powered feedback on your artwork to improve and iterate.
- Profiles & Social (Roadmap) – Public profiles for creators with the ability to like and interact with NFTs.
-
Connect Wallet Sign in with your wallet to get started.
-
Generate Art Enter a vibe text prompt the Curator Agent create unique AI-powered NFT art for you.
-
Preview & Edit Instantly view your generated image and refine your prompt if you want to iterate.
-
Mint NFT Mint your favorite creation directly to the Shape L2 testnet for verifiable on-chain ownership.
-
Curate Gallery Add your minted NFTs to a personal gallery to showcase your collection.
-
Connect Wallet Link your Shape-compatible wallet to access and manage your NFT collection.
-
Explore Collections Browse and trade AI-generated NFTs from other users or discover trending collections
-
Interact & Curate Like, bookmark, and display your favorite NFTs in your own galleries.
-
Track Ownership Verify NFT ownership and metadata directly on-chain for authenticity and provenance.
- Frontend: Next.js 15, TypeScript 5, Tailwind CSS 4, Shadcn UI
- Theme: next-themes
- Forms & Validation: react-hook-form, Zod
- Data Fetching: TanStack Query
- Web3 Integration:
- Onchain Storage: IPFS (Pinata)
- AI Integration:
- Smart Contracts: Solidity with Hardhat
- Blockchain: Shape Network
- RPC & NFT API: Alchemy SDK
- Notifications: Sonner
-
Clone the repo
git clone git@github.com:samueldanso/Reshape.git cd Reshape -
Install dependencies
bun install
-
Set up environment variables
cp .env-example .env
Fill in your environment variables:
NEXT_PUBLIC_ALCHEMY_KEY: Get from AlchemyNEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID: Get from WalletConnectNEXT_PUBLIC_CHAIN_ID: Use11011for Shape Sepolia or360for Shape MainnetOPENAI_API_KEY: Your_openAI_api_keyPINATA_JWT: Your_pinata_jwtNEXT_PUBLIC_GATEWAY_URL= Your_Pinata_Gateway_URL
-
Start development server
bun dev
-
Open your browser Navigate to http://localhost:3000
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ │ ├── create/ # AI chat and NFT creation
│ │ ├── generate-image/ # DALL-E image generation
│ │ └── call-mcp-tool/ # MCP tool integration
│ ├── create/ # NFT creation page
│ │ └── _components/ # Create page components
│ │ └── chat-ui.tsx # Main chat interface
│ ├── discover/ # NFT discovery page
│ │ └── _components/ # Discover page components
│ │ ├── discover-tabs.tsx # Discovery tabs
│ │ └── nft-grid.tsx # NFT grid display
│ ├── gallery/ # User gallery page
│ │ └── _components/ # Gallery page components
│ │ └── nft-gallery.tsx # Gallery display
│ ├── profile/ # User profile page
│ ├── bookmarks/ # Bookmarks page
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page (redirects to /create)
│ ├── globals.css # Global styles
│ ├── error.tsx # Error boundary
│ └── not-found.tsx # 404 page
├── components/ # React components
│ ├── ui/ # Shadcn/ui components (40+ components)
│ │ ├── button.tsx # Button component
│ │ ├── card.tsx # Card component
│ │ ├── dialog.tsx # Dialog component
│ │ ├── form.tsx # Form components
│ │ ├── input.tsx # Input component
│ │ ├── tabs.tsx # Tabs component
│ │ └── ... # 30+ more UI components
│ ├── ai-elements/ # AI chat components
│ │ ├── conversation.tsx # Chat conversation
│ │ ├── message.tsx # Message display
│ │ ├── prompt-input.tsx # Input interface
│ │ ├── loader.tsx # Loading states
│ │ └── ... # 8 more AI components
│ ├── header.tsx # Site header
│ ├── sidebar.tsx # Navigation sidebar
│ ├── wallet-connect.tsx # Wallet connection
│ ├── mint-transaction-handler.tsx # NFT minting handler
│ ├── providers.tsx # App providers
│ └── theme-toggle.tsx # Theme switcher
├── hooks/ # Custom React hooks
│ ├── use-image-generation.ts # Image generation hook
│ ├── use-mcp.ts # MCP integration hook
│ ├── use-balance.ts # Wallet balance hook
│ ├── use-mobile.ts # Mobile detection hook
│ └── web3.ts # Web3 utilities
├── lib/ # Utility functions and configurations
│ ├── clients.ts # Alchemy and RPC clients
│ ├── config.ts # Environment configuration
│ ├── utils.ts # Helper functions
│ ├── web3.ts # Wagmi configuration
│ └── pinata.ts # IPFS upload utilities
├── types/ # TypeScript type definitions
│ └── mcp.ts # MCP tool types
├── public/ # Static assets
├── env.ts # Environment validation
├── components.json # Shadcn/ui configuration
├── biome.json # Linter configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Dependencies and scripts
Deploy your repository to Vercel
- Buy, sell, and trade NFTS
- Receive quick AI-powered feedback on your artwork to improve and iterate.
- Social profiles for creators with the ability to like and interact with NFTs.
- Fork this repository
- Create your feature branch
- Commit your changes
- Open a Pull Request
Samuel Danso - Fullstack Engineer
- Live Demo: [reshape-ai-demo.vercel.app](https://reshape-ai-demo.vercel.app