bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 75쪽 중 20쪽
kchain and wallet address. If the target wallet already exists, its metadata is updated.
# Get fee parameters of a blockchain
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-fee-parameters
openapi/developer-controlled-wallets.yaml get /v1/w3s/developer/transactions/feeParameters
Get latest fee parameters of a blockchain with an optional account type (default to 'EOA').
# Get the lowest nonce pending transaction for a wallet
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-lowest-nonce-transaction
openapi/developer-controlled-wallets.yaml get /v1/w3s/transactions/lowestNonceTransaction
For a nonce-supported blockchain, get the lowest nonce transaction that's in QUEUED or SENT or STUCK state for the provided wallet.
# Get token details
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-token-id
openapi/developer-controlled-wallets.yaml get /v1/w3s/tokens/{id}
Fetches details of a specific token given its unique identifier. Every token in your network of wallets has a UUID associated with it, regardless of whether it's already recognized or was added as a monitored token.
# Get a transaction
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-transaction
openapi/developer-controlled-wallets.yaml get /v1/w3s/transactions/{id}
Retrieves info for a single transaction using it's unique identifier.
# Retrieve a wallet
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-wallet
openapi/developer-controlled-wallets.yaml get /v1/w3s/wallets/{id}
Retrieve an existing wallet
# Get a wallet set
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-wallet-set
openapi/developer-controlled-wallets.yaml get /v1/w3s/walletSets/{id}
Retrieve an existing wallet set.
# Get all wallet sets
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-wallet-sets
openapi/developer-controlled-wallets.yaml get /v1/w3s/walletSets
Retrieve an array of existing wallet sets.
# List wallets
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-wallets
openapi/developer-controlled-wallets.yaml get /v1/w3s/wallets
Retrieves a list of all wallets that fit the specified parameters.
# List wallets with balances
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/get-wallets-with-balances
openapi/developer-controlled-wallets.yaml get /v1/w3s/developer/wallets/balances
Retrieves a list of all wallets that match the specified parameters. Wallet balances update automatically after each transfer.
**Note**: On Aptos, this endpoint only returns balances for tokens stored in primary storage. Tokens held in [AIP-21](https://github.com/aptos-labs/aptos-core/releases/tag/aptos-node-v1.5.0) secondary storage are excluded from balance queries and deposit notifications to prevent incorrect or misleading results from secondary storage-based state changes.
# List transactions
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/list-transactions
openapi/developer-controlled-wallets.yaml get /v1/w3s/transactions
Lists all transactions. Includes details such as status, source/destination, and transaction hash.
# Get token balance for a wallet
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/list-wallet-balance
openapi/developer-controlled-wallets.yaml get /v1/w3s/wallets/{id}/balances
Fetches the digital asset balance for a single developer-controlled wallet using its unique identifier.
**Note**: On Aptos, this endpoint only returns balances for tokens stored in primary storage. Tokens held in [AIP-21](https://github.com/aptos-labs/aptos-core/releases/tag/aptos-node-v1.5.0) secondary storage are excluded from balance queries and deposit notifications to prevent incorrect or misleading results from secondary storage-based state changes.
# Get NFTs for a wallet
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/list-wallet-nfts
openapi/developer-controlled-wallets.yaml get /v1/w3s/wallets/{id}/nfts
Fetches the info for all NFTs stored in a single developer-controlled wallet, using the wallets unique identifier.
# Sign delegate action
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/sign-delegate-action
openapi/developer-controlled-wallets.yaml post /v1/w3s/developer/sign/delegateAction
Sign a delegate action from a specific developer-controlled wallet.
To identify the wallet, you must provide either `walletId`, or both `walletAddress` and `blockchain` in the request body.
NOTE: This endpoint is only available for NEAR and NEAR-TESTNET.
# Sign message
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/sign-message
openapi/developer-controlled-wallets.yaml post /v1/w3s/developer/sign/message
Sign a message from a specified developer-controlled wallet. This endpoint supports message signing for Ethereum-based blockchains (using EIP-191), Solana and Aptos (using Ed25519 signatures). Note that Smart Contract Accounts (SCA) are specific to Ethereum and EVM-compatible chains. The difference between Ethereum's EOA and SCA can be found in the [account types guide](https://developers.circle.com/wallets/account-types). You can also check the list of Ethereum Dapps that support SCA: https://eip1271.io/."
To identify the wallet, you must provide either `walletId`, or both `walletAddress` and `blockchain` in the request body.
# Sign transaction
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/sign-transaction
openapi/developer-controlled-wallets.yaml post /v1/w3s/developer/sign/transaction
Sign a transaction from a specific developer-controlled wallet.
To identify the wallet, you must provide either `walletId`, or both `walletAddress` and `blockchain` in the request body.
NOTE: This endpoint is only available for the following chains: `SOL`, `SOL-DEVNET`, `NEAR`, `NEAR-TESTNET`, `EVM`, `EVM-TESTNET`. Each chain defines its own standard, please refer to [Signing APIs doc](https://learn.circle.com/w3s/signing-apis).
# Sign typed data
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/sign-typed-data
openapi/developer-controlled-wallets.yaml post /v1/w3s/developer/sign/typedData
| Sign the EIP-712 typed structured data from a specified developer-controlled wallet.
To identify the wallet, you must provide either `walletId`, or both `walletAddress` and `blockchain` in the request body.
This endpoint only supports Ethereum and EVM-compatible blockchains. Please note that not all apps currently support Smart Contract Accounts (SCA); the difference between Ethereum's EOA and SCA can be found in the [account types guide](https://developers.circle.com/wallets/account-types). You can also check the list of Ethereum apps that support SCA: https://eip1271.io/.
# Update a wallet
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/update-wallet
openapi/developer-controlled-wallets.yaml put /v1/w3s/wallets/{id}
Updates info metadata of a wallet.
# Update a wallet set
Source: https://developers.circle.com/api-reference/wallets/developer-controlled-wallets/update-wallet-set
openapi/developer-controlled-wallets.yaml put /v1/w3s/developer/walletSets/{id}
Update the name of the wallet set
# Wallets API error codes
Source: https://developers.circle.com/api-reference/wallets/error-codes
Descriptions of error codes returned by the Wallets and Compliance Engine APIs.
For error response shapes and general errors that can be returned by any Circle
API, see [API errors](/api-reference/errors). For error codes surfaced by the
user-controlled wallet SDK's built-in UI (`155701`–`155721`), see
[SDK error codes](/sdks/user-controlled/error-codes).
## User (`155101`–`155146`)
| Error code | HTTP code | Error message | Resolution |
| - | - | - | - |
| `155101` | `409` | `Existing user already created with the provided userId.` | Retry with a unique user ID. |
| `155102` | `404` | `Cannot find the user id in the system.` | Verify the user ID and confirm your entity has access to it. |
| `155103` | `401` | `Cannot find the user token in the system.` | Generate a new user token. |
| `155104` | `403` | `The userToken had expired.` | Generate a new user token. |
| `155105` | `403` | `The userToken is invalid.` | Generate a new user token. |
| `155106` | `409` | `The user had already been initialized.` | Query the user status to check whether the user has already set a PIN and created a wallet. |
| `155107` | `409` | `User has previously set a PIN. Use PUT /user/pin to reset the PIN.` | Reset the PIN with `PUT /user/pin`. |
| `155108` | `409` | `User has previously set up their security questions, and they can't be reset.` | Security questions can only be set once and cannot be reset. |
| `155109` | `409` | `The specified user has been disabled.` | Re-enable the user. |
| `155110` | `400` | `User has not set up a PIN yet.` | Initialize the user or set a PIN before retrying. |
| `155111` | `400` | `User hasn't set the security questions for PIN backup yet.` | Initialize the user or set security questions before retrying. |
| `155112` | `400` | `The user has inputted the incorrect pin.` | Retry with the correct PIN. |
| `155113` | `400` | `Provided device ID is not found in the system.` | Verify the device ID. |
| `155114` | `400` | `Provided app ID is not recognized in the system.` | Verify the app ID. Find it in the Circle Console or via `GET /config/entity`. |
| `155115` | `400` | `The user has inputted the incorrect security answers` | Retry with the correct security answers. |
| `155116` | `404` | `The challenge ID doesn't exist in the system.` | Verify the challenge ID. |
| `155117` | `400` | `The content provided for approval is not correct.` | Update to the latest SDK version. |
| `155118` | `400` | `Encryption key does not match with the user's token. Call POST /users/token to get the correct token encryption key pair.` | Call `POST /users/token` to get a matching token and encryption keypair. |
| `155119` | `400` | `The user's PIN input is locked. It will be unlocked after the cooldown period.` | Wait for the cooldown to end, then retry. |
| `155120` | `400` | `The user's security questions input is locked. It will be unlocked after the cooldown period.` | Wait for the cooldown to end, then retry. |
| `155121` | `403` | `The provided challengeId has expired.` | Create a new challenge. |
| `155122` | `403` | `The provided challengeId is invalid` | Create a new challenge. |
| `155123` | `403` | `No extra information provided when adding PIN-related requests.` | Update to the latest SDK version. The challenge approval payload is malformed. |
| `155124` | `403` | `The extra information provided for PIN-related requests is invalid.` | Update to the latest SDK version. The challenge approval payload is malformed. |
| `155130` | `400` | `User OTP token is expired.` | Request a new OTP email. |
| `155131` | `400` | `User OTP token is invalid.` | Verify the OTP token in the request. |
| `155132` | `404` | `User OTP value is not found.` | Request an OTP email first. |
| `155133` | `400` | `User OTP value is invalid.` | Verify the OTP value in the request. |
| `155134` | `400` | `User OTP value is not matched.` | Confirm the OTP value matches the OTP token. |
| `155135` | `400` | `User's email is invalid.` | Verify the email format. |
| `155136` | `400` | `User's email is not matched.` | Confirm the email matches the user's registered email. |
| `155137` | `400` | `User's device ID is invalid.` | Verify the device ID in the request. |
| `155138` | `400` | `Failed to send the email.` | Check the SMTP configuration in the Circle Console. |
| `155139` | `400` | `The idToken / accessToken of SSO is expired.` | Refresh the SSO token from your SSO provider. |
| `155140` | `400` | `Failed to validate the idToken/ accessToken.` | Verify the SSO provider configuration in the Circle Console. |
| `155141` | `400` | `The user has exceeded the max limit (5) of entering OTP at the moment.` | Wait 60 minutes before retrying. |
| `155142` | `400` | `The max limit (5) of sending OTP has been exceeded at the moment.` | Wait 60 minutes before retrying. |
| `155143` | `400` | `The device token is expired.` | Request a new device token. Tokens expire after 10 minutes. |
| `155144` | `400` | `The device token is invalid.` | Request a new device token. Only one active token is allowed per `deviceId`. |
| `155145` | `404` | `The device token is not found.` | Request a new device token. |
| `155146` | `400` | `The OTP token is invalid as the user has entered it incorrectly three times.` | Request a new OTP email. |
## Authentication configuration (`155150`–`155157`)
| Error code | HTTP code | Error message | Resolution |
| - | - | - | - |
| `155150` | `404` | `The SMTP server configuration is not found.` | Complete the SMTP configuration in the Circle Console. |
| `155151` | `400` | `The SMTP server configuration is invalid.` | Fix the SMTP configuration in the Circle Console. |
| `155152` | `404` | `The SSO provider configuration is not found.` | Add an SSO provider in the Circle Console. |
| `155154` | `400` | `The OTP email template is invalid.` | Fix the OTP email template configuration. |
| `155155` | `404` | `The OTP email template is not found.` | Add an OTP email template in the Circle Console. |
| `155156` | `400` | `Failed to update the email template.` | Check the OTP email template content. |
| `155157` | `400` | `Failed to update the SMTP server` | Check the SMTP configuration in the Circle Console. |
## Transaction (`155201`–`155264`)
| Error code | HTTP code | Error message | Resolution |
| - | - | - | - |
| `155201` | `400` | `Not enough funds to fulfill the withdraw request.` | Add native tokens to the wallet to cover pending transactions. |
| `155202` | `400` | `Transaction nonce is inconsistent with sender's latest nonce.` | Retry the transaction after the previous one reaches finality. |
| `155203` | `400` | `User op nonce can not be larger than 0 when smart contract wallet hasn't been deployed.` | Send the first user op with nonce 0 to trigger contract deployment. |
| `155204` | `400` | `The total cost of executing transaction is higher than the balance of the user's account when estimating fee.` | Add native tokens to cover the total transaction cost. |
| `155205` | `400` | `Failed to execute this request on EVM due to insufficient token when estimating fee.` | Add the required non-native token balance to the wallet. |
| `155206` | `400` | `The sender address is not token owner or approved when estimating token transfer.` | Approve the caller to spend the token, or use the token owner as sender. |
| `155207` | `400` | `Gas required exceeds allowance when estimating fee.` | Increase the gas allowance. |
| `155208` | `400` | `Estimate fee execution reverted.` | The transaction reverted onchain during fee estimation. Verify the target contract, function, and parameters. |
| `155209` | `400` | `ABI function signature can't pack ABI parameter.` | Correct the ABI parameters. |
| `155210` | `400` | `Fails to perform transaction estimation.` | Retry the request. If the error persists, verify the request parameters against the target blockchain. |
| `155211` | `400` | `MaxFee * GasLimit exceed configurable max transaction fee (default is 1 native token).` | Reduce `maxFee` or `gasLimit`. Circle applies a per-blockchain maximum fee limit, which defaults to 1 unit of the blockchain's native token. |
| `155215` | `400` | `Unsupported operation for transaction.` | Check the transaction status. The requested operation is not valid in its current state. |
| `155218` | `400` | `Invalid number of nft in transaction request.` | Provide multiple tokens only for ERC-1155 transfers. |
| `155219` | `400` | `Invalid destination address.` | Provide a valid destination address. |
| `155220` | `400` | `Wallet and token's blockchain mismatch.` | Use a wallet and token on the same blockchain. |
| `155221` | `400` | `Invalid amounts in transfer request.` | For token standards other than ERC-1155, provide a single amount in the transfer request. |
| `155222` | `404` | `NFT metadata can not be found.` | Confirm that the token contract exposes NFT metadata. |
| `155223` | `400` | `Unsupported userId for get transactions.` | Remove `userId` from the query parameters. |
| `155224` | `400` | `Failed to parse the provided amounts in request to decimals.` | Provide amounts as valid decimal numbers. |
| `155225` | `400` | `Wallet and request's blockchain mismatch.` | Use a wallet and request blockchain that match. |
| `155226` | `400` | `Invalid source address.` | Provide a valid source address. |
| `155227` | `400` | `Invalid transaction type.` | Provide an outbound transaction. |
| `155228` | `400` | `Missing token ID.` | Include the token ID in the request. |
| `155229` | `400` | `Transaction is not eligible for operation.` | Check the transaction status. The operation is no longer allowed in its current state. |
| `155230` | `400` | `No call data or abi signature provided.` | Provide `callData` or an ABI signature. |
| `155231` | `400` | `Transaction needs feeLevel or gasLimit provided.` | Provide `feeLevel` or `gasLimit`. |
| `155232` | `400` | `SCA transaction needs feeLevel provided.` | Provide `feeLevel` for SCA transactions. |
| `155233` | `400` | `Provided gasLimit is too low to complete the requested transaction.` | Provide a higher `gasLimit` than the network estimate. |
| `155234` | `400` | `Transaction can't have both feeLevel and fee parameters provided.` | Provide either `feeLevel` or the detailed fee parameters, not both. |
| `155235` | `400` | `EIP1559 chains need maxFee/priorityFee provided.` | Provide `maxFee` and `priorityFee` for EIP-1559 blockchains. |
| `155236` | `400` | `Failed to parse the provided fee in request to decimals.` | Provide fee values as valid decimal numbers. |
| `155237` | `400` | `PriorityFee cannot be larger than maxFee in creating transaction request.` | Set `priorityFee` less than or equal to `maxFee`. |
| `155238` | `400` | `Non-EIP1559 chains need gasPrice provided.` | Provide `gasPrice` for non-EIP-1559 blockchains. |
| `155239` | `400` | `Invalid token address for transfer.` | Provide a valid token address. |
| `155240` | `400` | `Invalid token standard for transfer.` | Provide a supported token standard. |
| `155241` | `400` | `Invalid token decimal for transfer.` | Provide a valid token decimal. |
| `155242` | `400` | `The lengths of amounts and nft tokens don't match.` | Ensure the amounts and NFT token arrays have the same length. |
| `155243` | `400` | `Missing bytecode for contract deployment.` | Provide `bytecode` for the contract deployment. |
| `155244` | `400` | `Cannot provide both WalletID and SourceAddress/Blockchain.` | Provide either `walletId` or `sourceAddress` and `blockchain`, not both. |
| `155245` | `400` | `Invalid amount in contract execution request.` | Provide the amount in the contract execution request as a valid number. |
| `155247` | `400` | `Cannot provide both CallData and AbiFunctionSignature/AbiParameters.` | Provide either `callData` or `abiFunctionSignature` and `abiParameters`, not both. |
| `155248` | `400` | `Policy is not activated and cannot be used.` | Activate the [Gas Station policy](/wallets/gas-station/policy-management) before submitting transactions. |
| `155249` | `400` | `Exceeded max daily transaction of the policy.` | Wait for the daily counter to reset, or raise the policy's max daily transaction limit. |
| `155250` | `400` | `Exceeded max spend USD per transact프로젝트로 돌아가기