Solana Agent Kit Needs Custom Code to Send PYUSD

Mainnet tests on Oct. 15 found that Solana Agent Kit’s built-in transfer tool cannot send PYUSD, while a custom Token-2022 action passed simulation without signing or sending funds.

Tests on Solana mainnet on Oct. 15, 2026, found that Solana Agent Kit’s built-in transfer tool cannot send PayPal USD (PYUSD). The tool uses Solana’s classic SPL Token program, while PYUSD uses the Token-2022 program. A custom action using Token-2022, the transferChecked instruction and transfer-hook account resolution passed simulation without signing or sending funds.

The built-in tool failed before signing when it tried to inspect the PYUSD mint and token accounts with the classic program. It returned “Transfer failed:” without an explanation because the underlying error had no message. Classic and Token-2022 token accounts have different addresses, so using the classic address can point to an account that does not exist.

Tests found that changing the program ID was insufficient. Token-2022 rejected a standard transfer instruction because PYUSD accounts carry a transfer-fee extension, even though the fee was set to zero. A transferChecked instruction that included the mint and its six-decimal setting completed successfully. A 2.01 PYUSD transfer between existing mainnet accounts used about 3,849 compute units during simulation.

The custom action re-reads the mint before each payment, checks its decimals and transfer-fee settings, derives sender and recipient accounts with Token-2022 and builds a transfer instruction that can resolve extra accounts if a transfer hook is enabled. The PYUSD mint had no active hook program during the Oct. 15 test.

The payment action accepts decimal strings and converts them into integer base units. It rejects amounts with more than six decimal places, limits each transfer to 250 PYUSD and restricts recipients to an allowlist. It requires simulation to succeed before signing. The example does not create token accounts, so each recipient must already have a Token-2022 PYUSD account.

A separate test of the payment action stopped at simulation because the test wallet had no funds. No transaction was signed. The tests used Solana Agent Kit 2.0.10, @solana/spl-token 0.4.15, @solana/kit 8.5.0 and the Token-2022 client version 0.19.0.

PYUSD’s Solana mint address is 2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo. A mainnet supply read on Oct. 15 returned 687,996,769.32 PYUSD. Solana developer information listed about $702 million of PYUSD on the network on Oct. 8.

The mint includes a permanent delegate and freeze authority controlled by Paxos. The permanent delegate can transfer or burn tokens in an account. A frozen source or destination account cannot complete a transfer. The payment design therefore reads balances from the blockchain and treats freeze-related failures as a reason to stop rather than retry.

Paxos-issued USDG on Solana was found to have the same extension set in a separate mint check. The source recommends separate allowlists, transfer limits and payment actions for each token.

Articles by this author