memo, the sender has to include that memo.
One user has one set of addresses for now. Several sets per user are planned. Anyone can send to the addresses. Reading them requires that user’s session.
Funds can settle to a confidential balance. The request for that is in Confidential balance.
Authenticate
Send both headers onGET /v0/quotes and POST /v0/quote.
Send the user session on the create. That is what makes the next list, for the same user, return these addresses.
Find an address
GET /v0/quotes is provisional. The response shape can change.
attributes.originAsset is 1cs_v1:any and whose attributes.destinationAsset is 1cs_v1:original. If it is not on this page, request links.next until links.next is null.
Show the user attributes.chainDepositAddresses, one address per chain. depositAddress on this quote is the internal 1Click account. The same address list comes back on create, under quote.chainDepositAddresses. An example is below.
Create an address
Create only when the list above has no matching item.slippageTolerance is in basis points (50 = 0.5%). Set deadline to 2038-01-01T00:00:00.000Z exactly. A deadline taken from the current time expires the address.
quote.chainDepositAddresses. A create response looks like this. Other quote fields are left out. The addresses are examples.
eth and base share one address because both are EVM. Show each chain’s address. When memo is present, the sender includes it. Leave depositAddress off the screen you show the user.
The list response puts that same array on each matching item. The array below is shortened to the envelope.
message string, with no errorCode. List the user’s quotes again and use the address that is already there.
Confidential balance
Use the same create request. SetrecipientType to CONFIDENTIAL_INTENTS and confidentiality to "basic". Leave depositType as INTENTS. Other people cannot see who owns the address.