Wallets and address management
wallets in cross river the cross river stablecoin payments api supports two types of blockchain address records wallets linked to accounts and external beneficiary wallets these records are managed within cross river infrastructure and associated with an account to support traceability and operational consistency wallets linked to accounts wallets linked to accounts are bank managed onchain addresses associated with a specific cross river account they are used exclusively to receive inbound stablecoin payments from external blockchain addresses wallet linked to accounts attributes field description purpose receive inbound stablecoin payments from external blockchain addresses association each wallet is associated with a unique cross river account creation generate using the post /v1/accounts/{accountnumber}/account addresses endpoint retrieval retrieve using get /v1/accounts/{accountnumber}/account addresses blockchains supported ethereum and solana security wallet addresses are managed within cross river infrastructure partners do not manage private keys example request post /v1/accounts/2917000057/account addresses { "blockchain" "solana", "currency" "usdc" } example response { "id" "108489fd 9f2f 4b1d 9a4e b39d01164422", "accountnumber" "2917000057", "blockchain" "solana", "address" "4zmmc9srt5ri5x14gagxhahii3gnpaeerypjgzjdncdu", "title" "solana", "lastmodifiedat" "2025 11 22t16 53 08 1639985z" } external beneficiary wallets external beneficiary wallets represent approved outbound payment destinations that may be registered and reused when initiating stablecoin payments to external blockchain addresses, which may be cross river’s customer or the customer’s customer (i e the end user) external beneficiary wallet attributes field description purpose send outbound stablecoin payments to an external blockchain address association each external beneficiary wallet is associated with a cross river account creation create using the post /v1/accounts/{accountnumber}/external addresses endpoint retrieval retrieve using get /v1/accounts/{accountnumber}/external addresses beneficiary details includes recipient identifying information for compliance review blockchains supported ethereum and solana example request post /v1/accounts/2917000057/external addresses { "title" "supplier wallet", "blockchain" "ethereum", "address" "0x0e6f76783822826ed173fee6265bdbbdfed4a0f5", "currency" "usdc", "beneficiary" { "name" "abc supplier llc", "addressline1" "500 commerce ave", "city" "jersey city", "stateprovince" "nj", "countrycode" "us", "postalcode" "07302" } } example response { "id" "6d5a90a0 4967 44ba 8380 b39d011abba0", "accountnumber" "2917000057", "title" "supplier wallet", "blockchain" "ethereum", "address" "0x0e6f76783822826ed173fee6265bdbbdfed4a0f5", "beneficiary" { "name" "abc supplier llc", "addressline1" "500 commerce ave", "city" "jersey city", "stateprovince" "nj", "countrycode" "us", "postalcode" "07302" }, "lastmodifiedat" "2025 11 22t17 09 23 9971536z" } learn how to send onchain payments docid 97ecbpklpcwxvcxkeo la operational overview wallet type direction managed by description wallets linked to accounts inbound cross river receives usdc from external blockchain addresses external beneficiary wallet outbound registered through the api used to send usdc to approved external recipients best practices follow these recommendations when managing wallet records through the api practice description use descriptive titles assign clear names such as “usdc solana address” or “vendor payout address” for identification maintain consistent blockchain mappings create wallet records on the same network used for the intended payment flow validate external addresses before use verify destination addresses through internal procedures prior to initiating payments limit wallet creation reuse existing wallet records where possible to maintain a clear audit trail monitor modification timestamps use lastmodifiedat to track creation and updates for reporting and operational review