{"openapi":"3.1.0","info":{"title":"Argos Bot CTS Bridge API","x-logo":{"url":"https://www.argosbot.io/brand/argos-dog-social-profile.png","altText":"Argos Bot"},"version":"1.0.0","description":"Inspect ownerless Arc/Base connections and coordinate external-wallet registration, wrapper creation and transfers through Circle's Crosschain Token Standard (CTS), CrossChainTokenService and CCTP. Wallets sign their own transactions.","x-guidance":"Argos Bot CTS Bridge API\nIndependent external-wallet API for ownerless Arc (5042) and Base (8453) token connections through Circle CTS, CrossChainTokenService and CCTP.\n1. GET /v1/lookup?token=0x...&chain=arc|base. Missing registration is a valid paid result. A token address alone cannot prove its chain.\n2. POST /v1/authorization with a JobIntent. Sign its typedData with the external EOA that holds the tokens. Preserve the intent and expiresAt exactly.\n3. POST /v1/jobs with intent, expiresAt, signature. The standard endpoint accepts Circle Gateway USDC on Arc or direct USDC on Base. Alternatively use POST /v1/jobs/direct for direct USDC on Arc or Base. Pay only an option offered by the current challenge; never switch endpoints or rails while a payment is unresolved. Retry the identical body with the same Payment-Signature. Preserve returned job.id and accessToken. Never replace an uncertain payment.\n4. Use Authorization: Bearer accessToken for all job endpoints. POST /v1/jobs/{id}/next returns a quote. Check route, step, fees and chain. POST /arm with stepId immediately before signing. Only arm returns the signable transaction and its deadline.\n5. Sign and broadcast that exact transaction with your own wallet. Do not sign expired plans. Persist the signed transaction/hash locally before broadcast. POST /transactions with stepId and hash. On timeout, recover the same wallet transaction; do not create another transfer.\n6. POST /resume refreshes receipts; GET the job to read saved progress. After registration, approval or deployment is complete, call /next again. Repeat until job.state is complete. Delivered means observed on destination but not yet finalized. Waiting for finality can take roughly 20 minutes on Base and is not a failure.\n7. To return tokens, create a NEW job using the wrapped address and its current source chain. Destination is always the same EOA on the other chain. Setup requires allowSetup=true; mode=setup creates a connection without transferring tokens. Existing approved setup is reused.\nStandard lookup costs 0.005 USDC and a job costs 0.01 USDC. The /direct alternatives cost 0.007 and 0.012 USDC respectively. A job includes subsequent preparation, status and recovery requests. The payment network is independent of the token source chain. Network gas and Circle forwarding fees are separate and use source native units (18 decimals: Arc USDC or Base ETH). Fee caps are per transaction. Source tokens use their own decimals. Base ETH is needed for transactions originating on Base, including return/unwrap.\nOnly Arc/Base external EOAs are supported. Known incompatible tokens, wrong contract identities, pauses, failed simulations and insufficient gas are blocked. Wrapper creation does not certify transfer behavior or guarantee liquidity. This API never receives private keys, signs transactions or exposes operator wallets.\nArmed or submitted steps are never automatically discarded. If a wallet request was interrupted, provide its hash. A finalized same-nonce replacement can terminate the job. Preserve recovery data; never assume a missing receipt means no transaction occurred.\nIf an armed quote expires before broadcast, POST /renew with stepId to obtain a fresh quote at the SAME nonce. First reconcile any transaction your wallet already broadcast. A quoted, unarmed step can be refreshed using /next. Neither endpoint broadcasts anything.\nOpenAPI: https://bridge-api.argosbot.io/openapi.json\nFor an uncertain direct USDC payment, retry the identical paid request with its original Payment-Signature and a Payment-Transaction header containing the settlement transaction hash from the facilitator. Recovery requires finalized canonical USDC receipt and exact authorization evidence. It never submits payment again. Missing evidence, unsupported batched calls or an unknown hash leave the payment unresolved; do not pay again. Gateway reconciliation does not need this header.\nThis service is independent of Circle. Marketplace listing requires separate review; this document is not an endorsement.\n","contact":{"name":"Argos Bot","url":"https://t.me/argosbotcommunity"}},"servers":[{"url":"https://bridge-api.argosbot.io"}],"externalDocs":{"url":"https://bridge-api.argosbot.io/llms.txt"},"paths":{"/v1/lookup":{"get":{"operationId":"lookupOwnerlessBridge","summary":"Find an ownerless Arc/Base bridge and identify original, wrapper, supply and contracts","x-payment-info":{"price":{"mode":"fixed","currency":"USDC","amount":"0.005"},"protocols":[{"x402":{"networks":["eip155:5042"],"scheme":"exact","asset":"0x3600000000000000000000000000000000000000","rail":"circle-gateway"}},{"x402":{"networks":["eip155:8453"],"scheme":"exact","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","rail":"direct"}}]},"parameters":[{"name":"token","in":"query","required":true,"description":"Token contract on the selected chain","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"}},{"name":"chain","in":"query","description":"Supply explicitly when known; omission inspects both chains","schema":{"type":"string","enum":["arc","base"]}},{"name":"finality","in":"query","description":"Snapshot finality","schema":{"type":"string","enum":["latest","finalized"],"default":"latest"}},{"name":"Payment-Transaction","in":"header","description":"Optional direct-payment settlement hash for read-only reconciliation of an uncertain payment. Requires the original Payment-Signature and identical request; never a bridge transaction hash.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"Payment-Signature","in":"header","description":"Private base64 x402 v2 authorization; preserve and reuse the same proof for recovery","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid lookup, including missing registrations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidLookup"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 USDC payment required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/authorization":{"post":{"operationId":"authorizeBridgeJob","summary":"Get wallet typed data for a fixed job intent; no funds move","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobIntent"}}}},"responses":{"200":{"description":"Sign typedData; send intent, expiresAt and signature to createJob","content":{"application/json":{"schema":{"type":"object","required":["intent","expiresAt","typedData"],"properties":{"intent":{"$ref":"#/components/schemas/JobIntent"},"expiresAt":{"type":"integer"},"typedData":{"$ref":"#/components/schemas/JobAuthorization"},"apiFeeUSDC":{"type":"string"},"purpose":{"type":"string"}}}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs":{"post":{"operationId":"createBridgeJob","summary":"Purchase one resumable setup or bridge job; wallet signatures remain external","x-payment-info":{"price":{"mode":"fixed","currency":"USDC","amount":"0.01"},"protocols":[{"x402":{"networks":["eip155:5042"],"scheme":"exact","asset":"0x3600000000000000000000000000000000000000","rail":"circle-gateway"}},{"x402":{"networks":["eip155:8453"],"scheme":"exact","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","rail":"direct"}}]},"parameters":[{"name":"Payment-Transaction","in":"header","description":"Optional direct-payment settlement hash for read-only reconciliation of an uncertain payment. Requires the original Payment-Signature and identical request; never a bridge transaction hash.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"Payment-Signature","in":"header","description":"Private base64 x402 v2 authorization; preserve and reuse the same proof for recovery","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJob"}}}},"responses":{"200":{"description":"Paid job with private access token","content":{"application/json":{"schema":{"type":"object","required":["requestId","result","payment"],"properties":{"requestId":{"type":"string"},"result":{"type":"object","required":["job","accessToken"],"properties":{"job":{"$ref":"#/components/schemas/Job"},"accessToken":{"type":"string","description":"Secret Bearer capability. Store securely; do not include in URLs."}}},"payment":{"$ref":"#/components/schemas/Receipt"},"recovered":{"type":"boolean"}}}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 USDC payment required; retain identical body during retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}":{"get":{"operationId":"getBridgeJob","summary":"Read saved job history without further payment","security":[{"JobAccess":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Job ID returned by the paid create call","schema":{"type":"string","pattern":"^ab_[a-f0-9]{48}$"}}],"responses":{"200":{"description":"Current job; only an armed step contains a signable transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}/next":{"post":{"operationId":"prepareBridgeStep","summary":"Prepare registration, deployment, approval or transfer according to current state","security":[{"JobAccess":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Job ID returned by the paid create call","schema":{"type":"string","pattern":"^ab_[a-f0-9]{48}$"}}],"responses":{"200":{"description":"Current job; only an armed step contains a signable transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}/arm":{"post":{"operationId":"armBridgeStep","summary":"Revalidate quote, reserve the wallet and return exact transaction to sign","security":[{"JobAccess":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Job ID returned by the paid create call","schema":{"type":"string","pattern":"^ab_[a-f0-9]{48}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["stepId"],"properties":{"stepId":{"type":"string","format":"uuid","description":"Exact step ID from the current quote"}}}}}},"responses":{"200":{"description":"Current job; only an armed step contains a signable transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}/renew":{"post":{"operationId":"renewBridgeStep","summary":"Renew an expired armed quote at the same nonce; reconcile any broadcast transaction first","security":[{"JobAccess":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Job ID returned by the paid create call","schema":{"type":"string","pattern":"^ab_[a-f0-9]{48}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["stepId"],"properties":{"stepId":{"type":"string","format":"uuid","description":"Exact step ID from the current quote"}}}}}},"responses":{"200":{"description":"Current job; only an armed step contains a signable transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}/transactions":{"post":{"operationId":"recordBridgeTransaction","summary":"Verify a broadcast transaction or finalized same-nonce replacement","security":[{"JobAccess":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Job ID returned by the paid create call","schema":{"type":"string","pattern":"^ab_[a-f0-9]{48}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["stepId","hash"],"properties":{"stepId":{"type":"string","format":"uuid","description":"Exact step ID from the current quote"},"hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Transaction hash on the job's source chain"}}}}}},"responses":{"200":{"description":"Current job; only an armed step contains a signable transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/{id}/resume":{"post":{"operationId":"resumeBridgeJob","summary":"Refresh finality and delivery; never rebroadcast or repeat a transfer","security":[{"JobAccess":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Job ID returned by the paid create call","schema":{"type":"string","pattern":"^ab_[a-f0-9]{48}$"}}],"responses":{"200":{"description":"Current job; only an armed step contains a signable transaction","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/lookup/direct":{"get":{"operationId":"lookupOwnerlessBridgeDirect","summary":"Find an ownerless Arc/Base bridge and identify original, wrapper, supply and contracts","x-payment-info":{"price":{"mode":"fixed","currency":"USDC","amount":"0.007"},"protocols":[{"x402":{"networks":["eip155:5042"],"scheme":"exact","asset":"0x3600000000000000000000000000000000000000","rail":"direct"}},{"x402":{"networks":["eip155:8453"],"scheme":"exact","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","rail":"direct"}}]},"parameters":[{"name":"token","in":"query","required":true,"description":"Token contract on the selected chain","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"}},{"name":"chain","in":"query","description":"Supply explicitly when known; omission inspects both chains","schema":{"type":"string","enum":["arc","base"]}},{"name":"finality","in":"query","description":"Snapshot finality","schema":{"type":"string","enum":["latest","finalized"],"default":"latest"}},{"name":"Payment-Transaction","in":"header","description":"Optional direct-payment settlement hash for read-only reconciliation of an uncertain payment. Requires the original Payment-Signature and identical request; never a bridge transaction hash.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"Payment-Signature","in":"header","description":"Private base64 x402 v2 authorization; preserve and reuse the same proof for recovery","schema":{"type":"string"}}],"responses":{"200":{"description":"Paid lookup, including missing registrations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidLookup"}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 USDC payment required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/jobs/direct":{"post":{"operationId":"createBridgeJobDirect","summary":"Purchase one resumable setup or bridge job; wallet signatures remain external","x-payment-info":{"price":{"mode":"fixed","currency":"USDC","amount":"0.012"},"protocols":[{"x402":{"networks":["eip155:5042"],"scheme":"exact","asset":"0x3600000000000000000000000000000000000000","rail":"direct"}},{"x402":{"networks":["eip155:8453"],"scheme":"exact","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","rail":"direct"}}]},"parameters":[{"name":"Payment-Transaction","in":"header","description":"Optional direct-payment settlement hash for read-only reconciliation of an uncertain payment. Requires the original Payment-Signature and identical request; never a bridge transaction hash.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"name":"Payment-Signature","in":"header","description":"Private base64 x402 v2 authorization; preserve and reuse the same proof for recovery","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJob"}}}},"responses":{"200":{"description":"Paid job with private access token","content":{"application/json":{"schema":{"type":"object","required":["requestId","result","payment"],"properties":{"requestId":{"type":"string"},"result":{"type":"object","required":["job","accessToken"],"properties":{"job":{"$ref":"#/components/schemas/Job"},"accessToken":{"type":"string","description":"Secret Bearer capability. Store securely; do not include in URLs."}}},"payment":{"$ref":"#/components/schemas/Receipt"},"recovered":{"type":"boolean"}}}}}},"400":{"description":"Invalid input; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid job capability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"x402 USDC payment required; retain identical body during retry","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequired"}}}},"409":{"description":"Unresolved payment/transaction or changed step. Reconcile before retrying.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; observe Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Dependency unavailable; preserve payment and transaction recovery data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"JobAccess":{"type":"http","scheme":"bearer","description":"Capability issued only for a paid job; independent of wallet signing"}},"schemas":{"Token":{"type":"object","required":["address","chainId","chain","role","isBridgedRepresentation"],"properties":{"address":{"type":"string"},"chainId":{"type":"integer","enum":[5042,8453]},"chain":{"type":"string","enum":["Arc","Base"]},"role":{"type":"string","enum":["original","wrapped"]},"isBridgedRepresentation":{"type":"boolean"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"explorerUrl":{"type":"string"}}},"Candidate":{"type":"object","properties":{"status":{"type":"string","enum":["not_a_contract","not_registered","wrapper_missing","verified","verification_failed","unavailable"]},"connectionExists":{"type":["boolean","null"]},"ownerlessVerified":{"type":["boolean","null"]},"source":{"$ref":"#/components/schemas/Token"},"destination":{"anyOf":[{"$ref":"#/components/schemas/Token"},{"type":"null"}]},"original":{"$ref":"#/components/schemas/Token"},"wrapped":{"anyOf":[{"$ref":"#/components/schemas/Token"},{"type":"null"}]},"direction":{"type":"string"},"operation":{"enum":["lock_and_mint","burn_and_unlock"]},"wrappedSupply":{"type":["object","null"],"properties":{"raw":{"type":"string"},"formatted":{"type":"string"},"chainId":{"type":"integer"},"tokenAddress":{"type":"string"},"decimals":{"type":"integer"},"meaning":{"type":"string"}}},"evidence":{"type":"array","items":{"type":"object"}},"contracts":{"type":"array","items":{"type":"object"}},"operational":{"type":"object"},"error":{"type":"string"}}},"LookupResponse":{"type":"object","required":["requestId","result","payment"],"properties":{"requestId":{"type":"string"},"payment":{"type":"object","description":"Facilitator settlement acknowledgement; Gateway batching is not necessarily a final onchain transfer."},"result":{"type":"object","properties":{"status":{"enum":["complete","ambiguous","unavailable"]},"observedAt":{"type":"string","format":"date-time"},"cached":{"type":"boolean"},"cacheAgeMs":{"type":"integer"},"candidates":{"type":"array","items":{"$ref":"#/components/schemas/Candidate"}}}}}},"JobAuthorization":{"type":"object","required":["domain","types","primaryType","message"],"properties":{"domain":{"type":"object","required":["name","version","chainId"],"properties":{"name":{"type":"string","const":"Argos Bot CTS Bridge API"},"version":{"type":"string","const":"1"},"chainId":{"type":"integer","enum":[5042,8453]}}},"primaryType":{"type":"string","const":"BridgeJob"},"types":{"type":"object","properties":{"BridgeJob":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"}}}}}},"message":{"type":"object","required":["origin","intentHash","expiresAt"],"properties":{"origin":{"type":"string","const":"https://bridge-api.argosbot.io"},"intentHash":{"type":"string","pattern":"^0x[0-9a-f]{64}$"},"expiresAt":{"type":"string","pattern":"^[0-9]+$"}}}}},"TokenIdentity":{"type":"object","required":["chainId","chain","address","role","isBridgedRepresentation"],"properties":{"chainId":{"type":"integer","enum":[5042,8453]},"chain":{"type":"string","enum":["Arc","Base"]},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"role":{"type":"string","enum":["original","wrapped"]},"isBridgedRepresentation":{"type":"boolean"}}},"Quote":{"type":"object","required":["step","chainId","expiresAt","nonce","circleFeeAtomic","gasBudgetAtomic","nativeCurrency"],"properties":{"step":{"type":"string","enum":["register","deploy","approve","reset-approval","transfer"]},"chainId":{"type":"integer","enum":[5042,8453]},"expiresAt":{"type":"integer"},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"nonce":{"type":"integer"},"circleFeeAtomic":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"},"gasBudgetAtomic":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"},"nativeCurrency":{"type":"string","enum":["USDC","ETH"]}}},"JobIntent":{"type":"object","additionalProperties":false,"required":["clientRequestId","chain","token","account","mode","amount","allowSetup","riskAcknowledged","maxForwardingFeeAtomic","maxGasBudgetAtomic"],"properties":{"clientRequestId":{"type":"string","format":"uuid","description":"Unique ID for this intended operation; retain it across payment retries"},"chain":{"type":"integer","enum":[5042,8453],"description":"Chain containing the input token and paying network gas"},"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"External EOA signer and destination recipient; must be an EOA on both chains"},"mode":{"type":"string","enum":["setup","transfer"],"description":"Setup only or transfer after optional setup"},"amount":{"type":"string","description":"Exact decimal token amount; 0 for setup. Never use floating-point arithmetic."},"allowSetup":{"type":"boolean","description":"Explicit authorization to register and deploy a missing ownerless connection"},"riskAcknowledged":{"type":"boolean","const":true,"description":"Acknowledges original-token transfer risks; simulations are not certification"},"maxForwardingFeeAtomic":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"},"maxGasBudgetAtomic":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"}}},"CreateJob":{"type":"object","additionalProperties":false,"required":["intent","expiresAt","signature"],"properties":{"intent":{"$ref":"#/components/schemas/JobIntent"},"expiresAt":{"type":"integer","description":"Unmodified millisecond deadline from authorization endpoint"},"signature":{"type":"string","pattern":"^0x[0-9a-fA-F]{130}$","description":"EOA signature of returned EIP-712 typed data"}}},"Job":{"type":"object","required":["id","intent","state","steps","revision","message"],"properties":{"id":{"type":"string"},"intent":{"$ref":"#/components/schemas/JobIntent"},"revision":{"type":"integer"},"state":{"type":"string","enum":["ready","awaiting_signature","awaiting_submission","pending","forwarding","delivered","complete","failed"]},"message":{"type":"string"},"tokens":{"type":"object","required":["source","destination","original","operation"],"properties":{"source":{"$ref":"#/components/schemas/TokenIdentity"},"destination":{"anyOf":[{"$ref":"#/components/schemas/TokenIdentity"},{"type":"null"}]},"original":{"$ref":"#/components/schemas/TokenIdentity"},"operation":{"type":"string","enum":["lock_and_mint","burn_and_unlock"]}}},"route":{"type":"object","description":"Original chain, input token, counterpart and ownerless connection"},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string"},"hash":{"type":"string"},"quote":{"$ref":"#/components/schemas/Quote"},"transaction":{"$ref":"#/components/schemas/Transaction"},"signBefore":{"type":"integer","description":"Never sign at or beyond this millisecond deadline"},"observation":{"type":"object","description":"Receipt evidence, destination hash and finality state"}}}}}},"Transaction":{"type":"object","required":["chainId","from","to","data","value","nonce","gas","maxFeePerGas","maxPriorityFeePerGas"],"properties":{"chainId":{"type":"integer","enum":[5042,8453]},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$"},"value":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"},"nonce":{"type":"integer"},"gas":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"},"maxFeePerGas":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"},"maxPriorityFeePerGas":{"type":"string","pattern":"^(0|[1-9][0-9]*)$","description":"Unsigned decimal integer in native atomic units (18 decimals), per transaction"}}},"PaidLookup":{"type":"object","required":["requestId","result","payment"],"properties":{"requestId":{"type":"string"},"payment":{"type":"object","description":"Facilitator settlement acknowledgement; Gateway batching is not necessarily a final onchain transfer."},"result":{"type":"object","properties":{"status":{"enum":["complete","ambiguous","unavailable"]},"observedAt":{"type":"string","format":"date-time"},"cached":{"type":"boolean"},"cacheAgeMs":{"type":"integer"},"candidates":{"type":"array","items":{"$ref":"#/components/schemas/Candidate"}}}}}},"Receipt":{"type":"object","description":"Gateway settlement acknowledgement; not necessarily an onchain transaction hash","properties":{"success":{"type":"boolean"},"payer":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"transaction":{"type":"string"},"network":{"type":"string"}}},"PaymentRequired":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object","required":["scheme","network","amount","asset","payTo"],"properties":{"scheme":{"type":"string"},"network":{"type":"string"},"amount":{"type":"string"},"asset":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"payTo":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Nonzero EVM address"},"extra":{"type":"object"}}}}}},"Error":{"type":"object","description":"Error details, possibly with a payment requestId requiring reconciliation"}}}}