Solana Agent Kit USDC Transfers Fail on 2.38% of Amounts

Testing found that Solana Agent Kit’s USDC transfer fails on 2.38% of cent-level amounts because of JavaScript floating-point math and does not support PYUSD or USDG.

Testing conducted on Oct. 7, 2026, found that Solana Agent Kit’s built-in USDC transfer failed on 2,384 of 100,000 cent-level payment amounts between 0.01 and 1,000 USDC. The test used version 2.0.10 of the solana-agent-kit package and version 2.0.9 of its Token plugin.

The open-source toolkit, developed by SendAI, connects Solana wallets to artificial intelligence agents. Its Token plugin provides actions that models and MCP clients can use to send tokens.

The transfer method accepts amounts in regular USDC units, such as 19.99, then multiplies them by 1 million to create the token’s base-unit amount. JavaScript stores numbers as binary floating-point values, which can produce fractions in some calculations. For example, 2.01 multiplied by 1 million produces 2,009,999.9999999998 instead of 2,010,000.

The Solana token library requires a whole number and throws a RangeError when it receives a fractional result. The error occurs before a transaction is signed or broadcast. Amounts such as 19.99 and 100 USDC produced whole-number results in the test.

The built-in method also reads token mints through Solana’s standard Token program. USDC and USDT use that program and passed the mint check. PYUSD and USDG use Token-2022, which supports features such as transfer hooks and transfer fees. The method rejected both tokens before signing because it attempted to read them through the standard program.

The transfer method accepts any valid recipient address and allows the caller to provide the mint and amount. It can create a recipient’s associated token account, with the sending wallet paying the account’s rent deposit. The method does not include recipient allowlists, spending limits or payment idempotency controls.

Developers can replace the built-in action with a custom payment action that accepts decimal amounts as strings and converts them directly into integer base units. The action can restrict payments to the USDC mint, limit recipients through an allowlist, and set per-transaction and daily spending caps. A transfer-checked instruction can verify the six-decimal USDC amount before submission.

Solana Agent Kit version 2 supports wallets that implement its signing interface, including embedded and managed wallet adapters. Its signOnly option returns a signed transaction without broadcasting it, allowing an application or operator to review the payment. Developers can expose selected actions to a model or MCP client instead of registering all 26 actions in the Token plugin.

Version 2 split the package into a core library and optional plugins. The published npm package can differ from the project’s development branch, so integrations need to be tested against the installed versions. The tested transfer path supports one-line USDC payments, with the reported failures occurring before transactions reach Solana.

Articles by this author