Skip to content

Turbin3/accel-Intentra

Repository files navigation

Intentra

Cross-chain intent-based swap protocol on Solana.

Users post swap intents on Solana. Solvers claim them, deliver tokens on the destination chain, and settle back on Solana to release escrowed funds.


Deployment — Solana Devnet

Field Value
Program ID FyBQEe7pQvEHhAHM4jGqSDM1MB9Xy81a8bnXcMnTDaVE
Deploy signature 3gi1YQydowkaHdxrUiNFeovXFJfku9auoJps6r1DqcEs7KvRgpNjXkKJF7bfKodTe15VvmGbNp1U4QP5Rf2ic3eu
IDL account eyLwv8pe3iWpPu7kPWyUekzTJNfgiwpm6BNfY6v7ZNE
Deploy authority 455q3UD1KkfMP7zWrd2XcYoZW8LaVoiU969cmusengZ9
Cluster Devnet (https://api.devnet.solana.com)
Deployed at 2026-06-25

Explorer links


Architecture

User (browser)
  └─ post_intent → escrows inputMint tokens in PDA vault

Solver agent (Docker)
  ├─ polls open intents every 4s
  ├─ claims profitable intents (claim_intent)
  ├─ delivers outputMint tokens on destination chain (EVM transfer)
  └─ settles on Solana (settle_intent) → releases vault to solver

Guardian (relayer)
  └─ co-signs settle_intent after verifying EVM delivery proof

On-chain accounts

Account Seeds Description
ProtocolConfig ["protocol_config"] Global fee, guardian, total intents counter
Intent ["intent", creator, nonce_le] Single swap intent + escrow state
EscrowVault ["escrow", intent_pda] Token vault holding inputMint until settlement
SolverProfile ["solver", solver_pubkey] Per-solver reputation and whitelist status

Instructions

Instruction Who calls it What it does
initialize_protocol Admin (once) Creates ProtocolConfig, sets fee & guardian
post_intent User Locks tokens in escrow, opens the intent
claim_intent Solver Locks the intent to this solver
fill_intent Solver Same-chain fill — transfers tokens directly
settle_intent Solver + Guardian Cross-chain settle — releases escrow after EVM proof
cancel_intent Creator Cancels an unclaimed intent, returns escrow
expire_intent Anyone Closes an expired intent
register_solver Solver Creates SolverProfile on-chain
whitelist_solver Guardian Approves a solver for cross-chain intents

Project structure

intentra/
├── programs/intentra/     Anchor program (Rust)
├── client/                Codama-generated TypeScript SDK
├── frontend/              Next.js 16 UI (wallet connect, live intents)
├── app/                   Guardian / relayer bot (TypeScript)
├── solver/                Solver agent (TypeScript, Docker)
├── tests/                 Anchor integration tests
└── codama/                IDL → SDK code generation

Running locally

Frontend

cd frontend
npm install
npm run dev
# → http://localhost:3000

Solver agent

cd solver
cp .env.example .env
# fill in SOLVER_PRIVATE_KEY, PROGRAM_ID, etc.
npm install
npm run dev

Docker (solver)

cd solver
docker build -t intentra-solver .
docker run --env-file .env intentra-solver

Tests

anchor test

Environment variables

SOLVER_PRIVATE_KEY=<base58 or JSON array>
GUARDIAN_PRIVATE_KEY=<base58 or JSON array>
PROGRAM_ID=FyBQEe7pQvEHhAHM4jGqSDM1MB9Xy81a8bnXcMnTDaVE
SOLANA_RPC_URL=https://api.devnet.solana.com
SOLANA_WS_URL=wss://api.devnet.solana.com
EVM_PRIVATE_KEY=<hex>
EVM_CHAIN_2_RPC=https://eth-sepolia.g.alchemy.com/v2/<key>
NEXT_PUBLIC_SOLANA_NETWORK=devnet

About

Express intents, not transactions. A Solana-based intent protocol where users define desired outcomes, solvers compete to execute them, and escrow guarantees secure settlement.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors