Skip to content

IDL Space is a Postman-like tool designed for Solana developers to seamlessly explore program interfaces, validate, test, and debug Solana programs. Effortlessly utilize features like PDA (Program-Derived Address) Finder, Account Viewer, and Transaction Builder to streamline transaction testing and enhance team collaboration.

Notifications You must be signed in to change notification settings

williamwa/idlman

Repository files navigation

IDL Space

IDL Space Logo

A Postman-like tool for Solana developers

Solana Breakout Hackathon Next.js TypeScript Anchor

🏆 Award

Public Goods Award Winner at the Solana Breakout Hackathon

📖 Overview

IDL Space is a comprehensive development tool designed for Solana developers to seamlessly explore program interfaces, validate, test, and debug Solana programs. Think of it as Postman for Solana - a powerful workspace where you can interact with on-chain programs through their Interface Definition Language (IDL) files.

✨ Key Features

🔧 Transaction Builder

Build complex multi-instruction transactions with an intuitive visual interface:

  • Add multiple instructions to a single transaction
  • Configure transaction options (compute units, priority fees, commitment levels)
  • Reorder instructions with drag-and-drop
  • Save and reuse transaction templates
  • Real-time transaction execution with detailed logs

📄 IDL Import & Management

Import Solana program IDLs from multiple sources:

  • File Upload: Drag and drop IDL JSON files
  • On-chain Fetch: Retrieve IDLs directly from program addresses
  • URL Import: Load IDLs from remote URLs
  • SPL Programs: Built-in support for SPL Token and other common programs
  • Supports both legacy and new IDL formats

🔍 PDA Finder

Easily find and verify Program Derived Addresses:

  • Automatic PDA seed detection from IDL
  • Interactive seed input interface
  • Real-time PDA calculation
  • Copy addresses with one click

👁️ Account Viewer

View and monitor on-chain account data:

  • Deserialize account data using IDL definitions
  • Real-time account state inspection
  • Support for all Anchor account types
  • Beautiful formatted display of complex data structures

📝 History Tracking

Never lose track of your development progress:

  • Complete transaction history with logs
  • Success/failure status tracking
  • Signature and explorer links
  • Filter and search through past transactions

🌐 Multi-Network Support

Work across different Solana networks:

  • Mainnet Beta
  • Devnet
  • Testnet
  • Custom RPC endpoints

💼 Workspace Management

Organize your development workflow:

  • Create multiple workspaces for different projects
  • Manage programs per workspace
  • Isolated transaction histories
  • Workspace-specific settings

🚀 Getting Started

Prerequisites

  • Node.js 20+
  • npm, yarn, pnpm, or bun
  • PostgreSQL database (for production) or SQLite (for development)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/idlspace.git
cd idlspace
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env

Edit .env and configure your database connection and other settings.

  1. Set up the database:
npx prisma generate
npx prisma db push
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

🏗️ Tech Stack

  • Framework: Next.js 15.2 with App Router
  • Language: TypeScript 5
  • Styling: TailwindCSS 4
  • Blockchain:
    • @solana/web3.js
    • @coral-xyz/anchor
    • @solana/wallet-adapter
  • Database: Prisma ORM with PostgreSQL
  • UI Components:
    • @headlessui/react
    • @heroicons/react
    • react-hot-toast
  • Authentication: NextAuth.js

📁 Project Structure

idlspace/
├── src/
│   ├── app/              # Next.js app router pages
│   ├── components/       # React components
│   │   ├── workspace/    # Workspace-related components
│   │   └── ui/           # Reusable UI components
│   ├── contexts/         # React contexts
│   │   ├── WorkspaceContext.tsx
│   │   ├── BuilderContext.tsx
│   │   └── CurrentNodeContext.tsx
│   ├── hooks/            # Custom React hooks
│   ├── utils/            # Utility functions
│   └── services/         # API services
├── prisma/               # Database schema and migrations
├── public/               # Static assets
└── native-idls/          # Built-in IDL files

🎯 Usage

Creating a Workspace

  1. Navigate to the Workspaces page
  2. Click "Create Workspace"
  3. Enter a name and select a network (Mainnet, Devnet, etc.)
  4. Your workspace is ready!

Adding a Program

  1. Open your workspace
  2. Click "Add Program" in the sidebar
  3. Choose your import method:
    • Upload an IDL file
    • Enter a program address to fetch on-chain
    • Provide a URL to an IDL file
    • Select from built-in SPL programs
  4. The program's instructions, accounts, and types will be loaded automatically

Building a Transaction

  1. Click on an instruction in the Programs tree
  2. Fill in the required accounts and arguments
  3. Click "Add Instruction" to add more instructions
  4. Configure transaction options (optional)
  5. Click "Send Transaction" to execute
  6. View the results in the response panel

Finding a PDA

  1. Focus on an account field that requires a PDA
  2. Click the "Find" button
  3. Enter the required seeds
  4. The PDA will be calculated and automatically filled

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License.

🔗 Links

💬 Support

For questions and support, please open an issue on GitHub.


Built with ❤️ for the Solana developer community

About

IDL Space is a Postman-like tool designed for Solana developers to seamlessly explore program interfaces, validate, test, and debug Solana programs. Effortlessly utilize features like PDA (Program-Derived Address) Finder, Account Viewer, and Transaction Builder to streamline transaction testing and enhance team collaboration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages