Getting started
- Confirm the target product’s participation, transfer, and redemption conditions and the scope of the partner integration.
- Obtain the network, payment asset, ProductToken, vault and feed addresses, and ABIs from the official integration specification.
- Integrate product data, wallet connection, deposit and redemption flows, and completion status displays.
- Verify the product’s pricing, limits, liquidity and settlement conditions, and exception handling.
Core interfaces
ProductToken uses the ERC20 interface. Deposits and redemptions use separate vault interfaces, so services that assume ERC4626 calls require a separate adapter design. Use the product’s user-facing contract addresses and official ABIs, distinguishing implementation addresses from addresses used for user calls.
Identifying a product
Do not select a transaction target from a product name or catalog key alone. Use the product’s official deployment specification to map the transaction
productId, network, token, vault and feed addresses, and ABIs. Distinguish listing identifiers from execution identifiers, and compare the selected product’s network with the wallet’s network.
Connecting products and liquidity routes
Connect public direct redemption calls and OTC orders and executions through their respective interfaces. Do not record a transfer in an OTC token acquisition as a burn, or display a Funds arcoUSD burn as completion of an external asset purchase.
Supported features by product and version
Determine execution availability from the supported feature matrix for each product and release version. The existence of an address and ABI does not mean every function or payment route is offered. Official release materials connect supported, unsupported and temporarily suspended status with ABI files, applicable versions, the price fixing point, and required participation policies.
Deposit transactions
Read the payment asset balance and allowance, and usequoteDeposit to obtain the expected issuance quantity. The approval target is the selected product’s DepositVault. Determine the required allowance and permitted price movement before preparing the deposit transaction.
paymentAssets is an integer quantity in the payment asset’s smallest units. minSharesOut is the minimum acceptable ProductToken receipt, and recipient is the receiving address. Before requesting a signature from the user’s wallet, check the chain, product, recipient, and approval target and simulate the transaction. After a successful transaction, refresh the ProductToken balance and activity status.
Where a product offers request-based deposits, distinguish acceptance of funds from completed token issuance. Explain request processing and the treatment of funds for incomplete deposits.
Redemption transactions
Read the ProductToken holding and usequoteRedeem to obtain the expected payment asset amount. Prepare the transaction using the instant or request-based redemption offered by the product.
sharesIn is a quantity in ProductToken’s smallest units, and minAssetsOut is the minimum acceptable payment asset receipt. The public requestRedeem interface above burns tokens in the request transaction and records the expected payment using the price at that time. Do not apply this behavior directly to products that fix NAV at settlement; check the relevant release ABI and pricing policy. For products requiring a claim, guide the designated recipient through claiming after payment approval.
Handling quantities and prices
Read each token’sdecimals and convert transaction quantities to integers in its smallest units. Calculate amounts with large integers or an exact decimal type, and send them through APIs as strings with explicit units. Do not round a displayed amount and use it directly as a transaction argument.
Account for price movement between a quote and execution through minimum receipt quantities and the product’s price validity policy. Do not mark transactions as complete if they fail pricing, limit, pause, participation policy, or liquidity conditions.
Transaction status and settlement records
Receiving a transaction hash does not mean the transaction succeeded. Verify success on the target chain, the route’s token transfers, issuance or burns, and actual payment. For OTC, distinguish order or quote acceptance from completed settlement. If API updates lag, distinguish an actual completed transaction from a pending interface update.
Identify a redemption request using
chainId, redemptionVaultAddress, and requestId together. Also record the product ID, request transaction, recipient, quantity, and payment route to avoid mixing identical request numbers from different vaults. Link payment completion to the successful transaction and actual receipt for the selected route.
Events and completion checks
The names and meanings below refer to the public redemption contract and public deposit contract. Use the release contract’s complete ABI to match log addresses, events, and arguments.
For release routes using direct operator payments, connect the separate payment transaction and receipt result. Use the relevant OTC specification to verify OTC order IDs, execution, and settlement. Similar API status labels and event names do not establish the same payment procedure.
Errors and recovery queries
These error strings come from the public reference code. Map them to the applicable ABI and error specification for release contracts. If the failure reason is unavailable, do not infer completion or failure.
APIs and operating permissions
Partner API specifications cover product discovery, deployments and price history, wallet activity, and redemption requests. Distinguish API display data, directly queried token balances, and on-chain transaction results, and show the data reference time. Provide administrator APIs and permissions for funds, prices, and request processing separately from user integrations.Public API implementation reference
The paths below are references for the read implementation in the public routes. The mainnet API base URL, authentication, version, call limits, pagination, and response guarantees will be finalized in the release specification. These paths do not indicate that the same endpoints will be offered at release.
The current catalog’s pause lookup can fall back to default values if the lookup fails. Do not authorize execution from the displayed
pauseState alone; check contract pause state and simulate the transaction. The current portfolio implementation returns an empty positions array, so query ProductToken directly for actual holdings. The code serializes bigint as decimal strings but uses number for market and history display prices. Do not use those display values as transaction quantities or minimum receipt amounts.
The request format is shown below. Variables are values from the partner’s approved environment; no illustrative server address is substituted for a real one.
API_BASE for the actual environment before use. The following is an example response structure, not live data. It represents a selected productId with no price history and no APY.
{"error":"Market service unavailable"}. History query errors return HTTP 404. Release APIs must specify error codes, authentication, pagination, data timestamps, indexer progress, and requery policies, distinguishing them from this reference response.
Partner release validation covers approvals and signatures, price changes, minimum receipt quantities, insufficient liquidity, requested redemption and completed payment, and network or indexing delays. Apply product interfaces, access policies, and error handling according to the release specification.
Integration acceptance criteria
Reproduce these results in a validation environment. Before release, confirm that the same integration code corresponds to the official deployment and current operating conditions. Mainnet validation and transaction execution follow the approved release process.