Skip to main content

Overview

This guide covers Solana-specific implementation details for delegating wallets. Solana uses a different delegation model than EVM chains, leveraging SPL Token’s built-in delegation functionality.
Use the /v1/delegation/solana/post-approval endpoint for Solana delegations.

Solana Network

Network Name: Solana Mainnet Beta Currencies: USDC, USDT Block Explorer: https://explorer.solana.com RPC URL: https://api.mainnet-beta.solana.com Advantages:
  • Extremely low transaction fees (~$0.00025 per transaction)
  • Fast block times (~400ms)
  • High throughput (65,000+ TPS capability)
  • No gas price fluctuations
Transaction Cost: Typically less than $0.001

SPL Token Delegation Model

Unlike EVM’s ERC20 approval pattern, Solana uses SPL Token’s native delegation system.

How It Works

1

User Has Token Account

User has an Associated Token Account (ATA) for their USDC/USDT
2

Approve Delegate

User calls SPL Token’s Approve instruction, setting a delegate with spending limit
3

Delegate Can Transfer

Platform’s delegate address can call Transfer on behalf of the user, up to approved amount
4

Allowance Decreases

Each transfer decreases the delegated amount automatically

Key Differences from EVM

Implementation

Prerequisites

Install required packages:

Token Mint Addresses

Always verify token mint addresses are correct. Solana has multiple USDC/USDT versions (native, bridged, etc.).

Complete Solana Delegation Flow

Wallet Adapter Setup

Set up Solana wallet adapter to support multiple wallets:

Message Signing

Solana uses Ed25519 signatures instead of ECDSA (used by EVM chains).

Sign Message

Check Token Account

Before delegation, verify user has the required token account:

Submit to API

After collecting all data, submit to the Solana-specific endpoint:

API Request

API Reference: POST /v1/delegation/solana/post-approval

Validation Rules

The API performs strict Solana-specific validation:
  • Base58-encoded string
  • Typically 32-44 characters
  • Must be a valid Solana public key
  • Case-sensitive
Valid: DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK Invalid: 0xDYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK (has 0x prefix)
  • Base58-encoded string
  • Typically 87-88 characters
  • Must be a confirmed transaction on Solana mainnet
  • Case-sensitive
Valid: 5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnbJLgp8uirBgmQpjKhoR4tjF3ZpRzrFmBV6UjKdiSZkQUW
  • Base64-encoded Ed25519 signature
  • Must verify against the provided address and message
  • Generated from signMessage() wallet adapter method
Valid: Base64 string from Ed25519 signature
  • Any string that was signed by the wallet
  • Commonly: "Prove wallet ownership for delegation"
  • Must match exactly what was signed

Error Handling

Common Solana Errors

API Error Responses

Testing

Test on Devnet

Before going to production, test on Solana devnet:
Get devnet SOL from: Get devnet USDC:
  • Use SPL Token Faucet on devnet
  • Or airdrop test tokens

Performance Optimization

Transaction Confirmation Strategies

Priority Fees

For faster processing during network congestion:

Wallet Support

Supported Solana Wallets

Phantom

Most popular Solana wallet with excellent mobile and browser support

Solflare

Full-featured wallet with hardware wallet support

Backpack

Modern wallet with built-in xNFT app store

Wallet Detection

Next Steps

EVM Implementation

Learn how delegation works on EVM chains

Priority Management

Configure wallet charging priority

Redelegation

Update allowances when needed

Implementation Guide

Complete 3-step delegation workflow