Skip to main content
Glama

deposit_data

DEPOSIT: for an order created with prepare_payment, it returns the quote signed by Bernuvia and the calldata of the USDC approve and fundPurchase that YOU sign and send with YOUR linked wallet (msg.sender must be that wallet, not your owner's). The purchase is your owner's: the download and the receipt are theirs. Bernuvia neither signs nor pays the gas. Completing the deposit means accepting the terms on your owner's behalf, including the immediate download (the 14-day right of withdrawal is waived).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe orderId (uuid) returned by prepare_payment.
singleSignatureNoOptional. true = GASLESS variant (phase 6, only if the platform has it active and the escrow contract supports it): on top of the usual response it returns `singleSignature.typedData`, an EIP-3009 (ReceiveWithAuthorization) authorization of the USDC that you sign with signTypedData, and then you call submit_signed_deposit; Bernuvia sends the transaction and pays the gas. The quote lasts less than in the classic path. Your wallet cannot have code (contracts or EIP-7702).
acceptTermsAndImmediateDownloadNoOptional, no longer required. Completing the deposit means accepting Bernuvia's terms, including the immediate download after payment, which waives the 14-day right of withdrawal. If you send it as true, it is also recorded as express consent with the date, the time, the version of the Terms and this order.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
gasYesSuggested fees and estimated cost. If the RPC did not respond, it arrives with `note` only.
quoteYesThe quote signed by Bernuvia: send it back AS IS in submit_signed_deposit, and it is what fundPurchase consumes.
amountYesThe deposit amount, in both units.
statusYesState of the order once quoted: always "quoted".
walletYesThe wallet that MUST send the transactions (msg.sender == quote.buyer).
networkYesThe network where the transactions have to be sent.
orderIdYesThe uuid of the order in Bernuvia.
balancesYesBalances of the wallet, read on the fly. If the RPC did not respond, it arrives with `note` only.
contractsYesAddresses the signatures are made against.
expiresAtYesExpiry of the quote in ISO 8601.
purchaseIdYesThe on-chain identifier (bytes32) of the purchase: the same as quote.orderId.
secondsLeftYesSeconds left on the quote at the time of the response.
instructionsYesSteps in text, in order, including the rules about hexadecimal amounts.
transactionsYesThe transactions of the classic path, IN ORDER: approve (step 1) and fundPurchase (step 2).
singleSignatureNoOnly with `singleSignature: true`: the EIP-3009 authorization you sign so that Bernuvia sends the deposit and pays the gas.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed55 schema fields changed
    • removedInput schema / allOf
      Removed value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "required": [
      -          "orderId"
      -        ]
      -      },
      -      {
      -        "required": [
      -          "ordenId"
      -        ]
      -      }
      -    ]
      -  }
      -]
    • removedInput schema / properties / acepta_terminos_y_descarga_inmediata
      Removed value: -{
      -  "deprecated": true,
      -  "description": "DEPRECATED alias of `acceptTermsAndImmediateDownload`: it still works, but use `acceptTermsAndImmediateDownload` (it will be removed in a future round, no date yet). Optional, no longer required. Completing the deposit means accepting Bernuvia's terms, including the immediate download after payment, which waives the 14-day right of withdrawal. If you send it as true, it is also recorded as express consent with the date, the time, the version of the Terms and this order.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / ordenId
      Removed value: -{
      -  "deprecated": true,
      -  "description": "DEPRECATED alias of `orderId`: it still works, but use `orderId` (it will be removed in a future round, no date yet). The ordenId (uuid) returned by prepare_payment.",
      -  "type": "string"
      -}
    • changedInput schema / properties / orderId / description
      Previous value: -"The ordenId (uuid) returned by prepare_payment."New value: +"The orderId (uuid) returned by prepare_payment."
    • changedInput schema / properties / singleSignature / description
      Previous value: -"Optional. true = GASLESS variant (phase 6, only if the platform has it active and the escrow contract supports it): on top of the usual response it returns `unaSolaFirma.typedData`, an EIP-3009 (ReceiveWithAuthorization) authorization of the USDC that you sign with signTypedData, and then you call submit_signed_deposit; Bernuvia sends the transaction and pays the gas. The quote lasts less than in the classic path. Your wallet cannot have code (contracts or EIP-7702)."New value: +"Optional. true = GASLESS variant (phase 6, only if the platform has it active and the escrow contract supports it): on top of the usual response it returns `singleSignature.typedData`, an EIP-3009 (ReceiveWithAuthorization) authorization of the USDC that you sign with signTypedData, and then you call submit_signed_deposit; Bernuvia sends the transaction and pays the gas. The quote lasts less than in the classic path. Your wallet cannot have code (contracts or EIP-7702)."
    • removedInput schema / properties / una_sola_firma
      Removed value: -{
      -  "deprecated": true,
      -  "description": "DEPRECATED alias of `singleSignature`: it still works, but use `singleSignature` (it will be removed in a future round, no date yet). Optional. true = GASLESS variant (phase 6, only if the platform has it active and the escrow contract supports it): on top of the usual response it returns `unaSolaFirma.typedData`, an EIP-3009 (ReceiveWithAuthorization) authorization of the USDC that you sign with signTypedData, and then you call submit_signed_deposit; Bernuvia sends the transaction and pays the gas. The quote lasts less than in the classic path. Your wallet cannot have code (contracts or EIP-7702).",
      -  "type": "boolean"
      -}
    • addedInput schema / required
      Added value: +[
      +  "orderId"
      +]
    • removedInput schema / x-bernuvia-aliases
      Removed value: -{
      -  "acceptTermsAndImmediateDownload": "acepta_terminos_y_descarga_inmediata",
      -  "orderId": "ordenId",
      -  "singleSignature": "una_sola_firma"
      -}
    • addedOutput schema / properties / amount
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "The deposit amount, in both units.",
      +  "properties": {
      +    "units": {
      +      "description": "Minimal units of USDC (6 decimals), as a decimal string.",
      +      "type": "string"
      +    },
      +    "usdc": {
      +      "description": "The same amount in human USDC, as a decimal string.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "units",
      +    "usdc"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / balances
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Balances of the wallet, read on the fly. If the RPC did not respond, it arrives with `note` only.",
      +  "properties": {
      +    "allowanceSufficient": {
      +      "description": "Does the allowance cover the amount? If true, skip step 1.",
      +      "type": "boolean"
      +    },
      +    "allowanceUnits": {
      +      "description": "Allowance granted to the escrow, in minimal units and as a decimal string.",
      +      "type": "string"
      +    },
      +    "note": {
      +      "description": "Text clarification; it is the ONLY field if the balances could not be read.",
      +      "type": "string"
      +    },
      +    "polMissing": {
      +      "description": "The same shortfall in human POL, as a decimal string.",
      +      "type": "string"
      +    },
      +    "polMissingWei": {
      +      "description": "POL that is missing, in wei and as a decimal string (\"0\" if there is enough).",
      +      "type": "string"
      +    },
      +    "polSufficient": {
      +      "description": "Is the POL enough for the gas of both steps?",
      +      "type": "boolean"
      +    },
      +    "polWei": {
      +      "description": "Native POL balance in wei, as a decimal string.",
      +      "type": "string"
      +    },
      +    "usdcMissingUnits": {
      +      "description": "USDC that is missing, in minimal units and as a decimal string (\"0\" if there is enough).",
      +      "type": "string"
      +    },
      +    "usdcSufficient": {
      +      "description": "Does the USDC balance cover the amount?",
      +      "type": "boolean"
      +    },
      +    "usdcUnits": {
      +      "description": "USDC balance in minimal units, as a decimal string.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / caducaEn
      Removed value: -{
      -  "description": "Expiry of the quote in ISO 8601.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / compraId
      Removed value: -{
      -  "description": "The on-chain identifier (bytes32) of the purchase: the same as cotizacion.orderId.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / contracts
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Addresses the signatures are made against.",
      +  "properties": {
      +    "escrow": {
      +      "description": "Escrow contract (destination of step 2).",
      +      "type": "string"
      +    },
      +    "usdc": {
      +      "description": "USDC token contract (destination of step 1).",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "escrow",
      +    "usdc"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / contratos
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Addresses the signatures are made against.",
      -  "properties": {
      -    "escrow": {
      -      "description": "Escrow contract (destination of step 2).",
      -      "type": "string"
      -    },
      -    "usdc": {
      -      "description": "USDC token contract (destination of step 1).",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "escrow",
      -    "usdc"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / cotizacion
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "The quote signed by Bernuvia: send it back AS IS in submit_signed_deposit, and it is what fundPurchase consumes.",
      -  "properties": {
      -    "amount": {
      -      "description": "Amount in minimal units of USDC, as a decimal string.",
      -      "type": "string"
      -    },
      -    "autoReleaseAfter": {
      -      "description": "Seconds in escrow before the automatic release.",
      -      "type": "number"
      -    },
      -    "buyer": {
      -      "description": "Buyer wallet: the only one that can deposit.",
      -      "type": "string"
      -    },
      -    "chainId": {
      -      "description": "Chain the signature was made against.",
      -      "type": "number"
      -    },
      -    "deadline": {
      -      "description": "Expiry of the signature (epoch s): the same instant as caducaEn.",
      -      "type": "number"
      -    },
      -    "feeBps": {
      -      "description": "Fee in basis points (100 = 1 %).",
      -      "type": "number"
      -    },
      -    "issuedAt": {
      -      "description": "Issuance (epoch s). Only in the contracts that require it; absent in v1.",
      -      "type": "number"
      -    },
      -    "nonce": {
      -      "description": "Anti-replay nonce (uint256) as a decimal string.",
      -      "type": "string"
      -    },
      -    "orderId": {
      -      "description": "bytes32 of the purchase (the same as compraId).",
      -      "type": "string"
      -    },
      -    "seller": {
      -      "description": "The seller's payout wallet.",
      -      "type": "string"
      -    },
      -    "signature": {
      -      "description": "EIP-712 signature of Bernuvia's quoteSigner (0x…).",
      -      "type": "string"
      -    },
      -    "token": {
      -      "description": "Address of the USDC.",
      -      "type": "string"
      -    },
      -    "verifyingContract": {
      -      "description": "Escrow contract of the EIP-712 domain.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "orderId",
      -    "buyer",
      -    "seller",
      -    "token",
      -    "amount",
      -    "feeBps",
      -    "autoReleaseAfter",
      -    "nonce",
      -    "deadline",
      -    "signature",
      -    "chainId",
      -    "verifyingContract"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / estado
      Removed value: -{
      -  "description": "State of the order once quoted: always \"quoted\".",
      -  "type": "string"
      -}
    • addedOutput schema / properties / expiresAt
      Added value: +{
      +  "description": "Expiry of the quote in ISO 8601.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / gas / description
      Previous value: -"Suggested fees and estimated cost. If the RPC did not respond, it arrives with `nota` only."New value: +"Suggested fees and estimated cost. If the RPC did not respond, it arrives with `note` only."
    • removedOutput schema / properties / gas / properties / calculadoEn
      Removed value: -{
      -  "description": "When the fees were estimated (ISO 8601): they expire in ~1 minute.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / gas / properties / calculatedAt
      Added value: +{
      +  "description": "When the fees were estimated (ISO 8601): they expire in ~1 minute.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / gas / properties / maxFeePerGasSugerido
      Removed value: -{
      -  "description": "maxFeePerGas in wei, in DECIMAL (string). For compatibility.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / gas / properties / maxFeePerGasSugeridoHex
      Removed value: -{
      -  "description": "The SAME maxFeePerGas in HEXADECIMAL with 0x: what the JSON-RPC requires.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / gas / properties / maxFeePerGasSuggested
      Added value: +{
      +  "description": "maxFeePerGas in wei, in DECIMAL (string). For compatibility.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / gas / properties / maxFeePerGasSuggestedHex
      Added value: +{
      +  "description": "The SAME maxFeePerGas in HEXADECIMAL with 0x: what the JSON-RPC requires.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / gas / properties / maxPriorityFeePerGasSugerido
      Removed value: -{
      -  "description": "maxPriorityFeePerGas in wei, in DECIMAL (string). For compatibility.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / gas / properties / maxPriorityFeePerGasSugeridoHex
      Removed value: -{
      -  "description": "The SAME maxPriorityFeePerGas in HEXADECIMAL with 0x: what the JSON-RPC requires.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / gas / properties / maxPriorityFeePerGasSuggested
      Added value: +{
      +  "description": "maxPriorityFeePerGas in wei, in DECIMAL (string). For compatibility.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / gas / properties / maxPriorityFeePerGasSuggestedHex
      Added value: +{
      +  "description": "The SAME maxPriorityFeePerGas in HEXADECIMAL with 0x: what the JSON-RPC requires.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / gas / properties / minPriorityGwei
      Added value: +{
      +  "description": "Minimum priority in gwei below which the transaction gets stuck on Polygon.",
      +  "type": "number"
      +}
    • removedOutput schema / properties / gas / properties / nota
      Removed value: -{
      -  "description": "Text clarification; it is the ONLY field if the fees could not be estimated.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / gas / properties / note
      Added value: +{
      +  "description": "Text clarification; it is the ONLY field if the fees could not be estimated.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / gas / properties / polNecesario
      Removed value: -{
      -  "description": "The same figure in human POL, as a decimal string.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / gas / properties / polNecesarioWei
      Removed value: -{
      -  "description": "POL you need to hold for the gas of both steps, in wei and as a decimal string.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / gas / properties / polNeeded
      Added value: +{
      +  "description": "The same figure in human POL, as a decimal string.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / gas / properties / polNeededWei
      Added value: +{
      +  "description": "POL you need to hold for the gas of both steps, in wei and as a decimal string.",
      +  "type": "string"
      +}
    • removedOutput schema / properties / gas / properties / prioridadMinimaGwei
      Removed value: -{
      -  "description": "Minimum priority in gwei below which the transaction gets stuck on Polygon.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / importe
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "The deposit amount, in both units.",
      -  "properties": {
      -    "unidades": {
      -      "description": "Minimal units of USDC (6 decimals), as a decimal string.",
      -      "type": "string"
      -    },
      -    "usdc": {
      -      "description": "The same amount in human USDC, as a decimal string.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "unidades",
      -    "usdc"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / instrucciones
      Removed value: -{
      -  "description": "Steps in text, in order, including the rules about hexadecimal amounts.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / instructions
      Added value: +{
      +  "description": "Steps in text, in order, including the rules about hexadecimal amounts.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / network
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "The network where the transactions have to be sent.",
      +  "properties": {
      +    "chainId": {
      +      "description": "Chain id (137 = Polygon).",
      +      "type": "number"
      +    },
      +    "name": {
      +      "description": "Readable name of the network.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "chainId",
      +    "name"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / ordenId
      Removed value: -{
      -  "description": "The uuid of the order in Bernuvia.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / orderId
      Added value: +{
      +  "description": "The uuid of the order in Bernuvia.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / purchaseId
      Added value: +{
      +  "description": "The on-chain identifier (bytes32) of the purchase: the same as quote.orderId.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / quote
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "The quote signed by Bernuvia: send it back AS IS in submit_signed_deposit, and it is what fundPurchase consumes.",
      +  "properties": {
      +    "amount": {
      +      "description": "Amount in minimal units of USDC, as a decimal string.",
      +      "type": "string"
      +    },
      +    "autoReleaseAfter": {
      +      "description": "Seconds in escrow before the automatic release.",
      +      "type": "number"
      +    },
      +    "buyer": {
      +      "description": "Buyer wallet: the only one that can deposit.",
      +      "type": "string"
      +    },
      +    "chainId": {
      +      "description": "Chain the signature was made against.",
      +      "type": "number"
      +    },
      +    "deadline": {
      +      "description": "Expiry of the signature (epoch s): the same instant as expiresAt.",
      +      "type": "number"
      +    },
      +    "feeBps": {
      +      "description": "Fee in basis points (100 = 1 %).",
      +      "type": "number"
      +    },
      +    "issuedAt": {
      +      "description": "Issuance (epoch s). Only in the contracts that require it; absent in v1.",
      +      "type": "number"
      +    },
      +    "nonce": {
      +      "description": "Anti-replay nonce (uint256) as a decimal string.",
      +      "type": "string"
      +    },
      +    "orderId": {
      +      "description": "bytes32 of the purchase (the same as purchaseId).",
      +      "type": "string"
      +    },
      +    "seller": {
      +      "description": "The seller's payout wallet.",
      +      "type": "string"
      +    },
      +    "signature": {
      +      "description": "EIP-712 signature of Bernuvia's quoteSigner (0x…).",
      +      "type": "string"
      +    },
      +    "token": {
      +      "description": "Address of the USDC.",
      +      "type": "string"
      +    },
      +    "verifyingContract": {
      +      "description": "Escrow contract of the EIP-712 domain.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "orderId",
      +    "buyer",
      +    "seller",
      +    "token",
      +    "amount",
      +    "feeBps",
      +    "autoReleaseAfter",
      +    "nonce",
      +    "deadline",
      +    "signature",
      +    "chainId",
      +    "verifyingContract"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / red
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "The network where the transactions have to be sent.",
      -  "properties": {
      -    "chainId": {
      -      "description": "Chain id (137 = Polygon).",
      -      "type": "number"
      -    },
      -    "nombre": {
      -      "description": "Readable name of the network.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "chainId",
      -    "nombre"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / saldos
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Balances of the wallet, read on the fly. If the RPC did not respond, it arrives with `nota` only.",
      -  "properties": {
      -    "allowanceSuficiente": {
      -      "description": "Does the allowance cover the amount? If true, skip step 1.",
      -      "type": "boolean"
      -    },
      -    "allowanceUnidades": {
      -      "description": "Allowance granted to the escrow, in minimal units and as a decimal string.",
      -      "type": "string"
      -    },
      -    "nota": {
      -      "description": "Text clarification; it is the ONLY field if the balances could not be read.",
      -      "type": "string"
      -    },
      -    "polFaltante": {
      -      "description": "The same shortfall in human POL, as a decimal string.",
      -      "type": "string"
      -    },
      -    "polFaltanteWei": {
      -      "description": "POL that is missing, in wei and as a decimal string (\"0\" if there is enough).",
      -      "type": "string"
      -    },
      -    "polSuficiente": {
      -      "description": "Is the POL enough for the gas of both steps?",
      -      "type": "boolean"
      -    },
      -    "polWei": {
      -      "description": "Native POL balance in wei, as a decimal string.",
      -      "type": "string"
      -    },
      -    "usdcFaltanteUnidades": {
      -      "description": "USDC that is missing, in minimal units and as a decimal string (\"0\" if there is enough).",
      -      "type": "string"
      -    },
      -    "usdcSuficiente": {
      -      "description": "Does the USDC balance cover the amount?",
      -      "type": "boolean"
      -    },
      -    "usdcUnidades": {
      -      "description": "USDC balance in minimal units, as a decimal string.",
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • addedOutput schema / properties / secondsLeft
      Added value: +{
      +  "description": "Seconds left on the quote at the time of the response.",
      +  "type": "number"
      +}
    • removedOutput schema / properties / segundosRestantes
      Removed value: -{
      -  "description": "Seconds left on the quote at the time of the response.",
      -  "type": "number"
      -}
    • addedOutput schema / properties / singleSignature
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Only with `singleSignature: true`: the EIP-3009 authorization you sign so that Bernuvia sends the deposit and pays the gas.",
      +  "properties": {
      +    "cancel": {
      +      "description": "How to withdraw the authorization if you decide not to pay.",
      +      "type": "string"
      +    },
      +    "nextStep": {
      +      "description": "What to do with the signature.",
      +      "type": "string"
      +    },
      +    "nonce": {
      +      "description": "The bytes32 of the authorization. SAVE IT: it is what cancel_deposit_authorization asks for.",
      +      "type": "string"
      +    },
      +    "originDomain": {
      +      "description": "Where the EIP-712 domain came from: \"chain\" (read from the token) or \"assumed\".",
      +      "type": "string"
      +    },
      +    "typedData": {
      +      "additionalProperties": true,
      +      "description": "The EIP-712 message (ReceiveWithAuthorization) to sign with signTypedData, WITHOUT touching any field.",
      +      "properties": {
      +        "domain": {
      +          "additionalProperties": true,
      +          "description": "EIP-712 domain of the USDC (name, version, chainId, verifyingContract).",
      +          "type": "object"
      +        },
      +        "message": {
      +          "additionalProperties": true,
      +          "description": "The signed values. Amounts go as a decimal string, not as a number.",
      +          "properties": {
      +            "from": {
      +              "description": "Your linked wallet.",
      +              "type": "string"
      +            },
      +            "nonce": {
      +              "description": "bytes32 of the authorization (digest of the quote).",
      +              "type": "string"
      +            },
      +            "to": {
      +              "description": "The escrow contract.",
      +              "type": "string"
      +            },
      +            "validAfter": {
      +              "description": "Start of the window (epoch s), as a decimal string.",
      +              "type": "string"
      +            },
      +            "validBefore": {
      +              "description": "End of the window (epoch s), as a decimal string: it is the expiry of the quote.",
      +              "type": "string"
      +            },
      +            "value": {
      +              "description": "Authorized amount in minimal units of USDC, as a decimal string.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to",
      +            "value",
      +            "validAfter",
      +            "validBefore",
      +            "nonce"
      +          ],
      +          "type": "object"
      +        },
      +        "primaryType": {
      +          "description": "Always \"ReceiveWithAuthorization\".",
      +          "type": "string"
      +        },
      +        "types": {
      +          "additionalProperties": true,
      +          "description": "EIP-712 type definitions.",
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "domain",
      +        "types",
      +        "primaryType",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "validAfter": {
      +      "description": "The same validAfter from the message (epoch s), as a decimal string.",
      +      "type": "string"
      +    },
      +    "validBefore": {
      +      "description": "The same validBefore from the message (epoch s), as a decimal string.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "typedData",
      +    "nonce",
      +    "validAfter",
      +    "validBefore",
      +    "originDomain",
      +    "nextStep",
      +    "cancel"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "State of the order once quoted: always \"quoted\".",
      +  "type": "string"
      +}
    • removedOutput schema / properties / transacciones
      Removed value: -{
      -  "description": "The transactions of the classic path, IN ORDER: approve (step 1) and fundPurchase (step 2).",
      -  "items": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "data": {
      -        "description": "Already encoded calldata (0x…).",
      -        "type": "string"
      -      },
      -      "descripcion": {
      -        "description": "What that transaction does.",
      -        "type": "string"
      -      },
      -      "gasLimitSugerido": {
      -        "description": "Suggested gas limit in DECIMAL (string). Kept for compatibility.",
      -        "type": "string"
      -      },
      -      "gasLimitSugeridoHex": {
      -        "description": "The SAME limit in HEXADECIMAL with 0x: it is the one the JSON-RPC requires (eth_sendTransaction or eth_estimateGas).",
      -        "type": "string"
      -      },
      -      "nombre": {
      -        "description": "Function that is called: \"approve\" or \"fundPurchase\".",
      -        "type": "string"
      -      },
      -      "omitir": {
      -        "description": "Only in step 1: true if the allowance already covers the amount and you can skip it.",
      -        "type": "boolean"
      -      },
      -      "paso": {
      -        "description": "Sending order: 1 approve, 2 fundPurchase.",
      -        "type": "number"
      -      },
      -      "to": {
      -        "description": "Destination contract of the transaction.",
      -        "type": "string"
      -      },
      -      "value": {
      -        "description": "Native POL to send, in HEXADECIMAL with 0x (JSON-RPC QUANTITY): always \"0x0\".",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "paso",
      -      "nombre",
      -      "to",
      -      "data",
      -      "value",
      -      "gasLimitSugerido",
      -      "gasLimitSugeridoHex",
      -      "descripcion"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / transactions
      Added value: +{
      +  "description": "The transactions of the classic path, IN ORDER: approve (step 1) and fundPurchase (step 2).",
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "data": {
      +        "description": "Already encoded calldata (0x…).",
      +        "type": "string"
      +      },
      +      "description": {
      +        "description": "What that transaction does.",
      +        "type": "string"
      +      },
      +      "gasLimitSuggested": {
      +        "description": "Suggested gas limit in DECIMAL (string). Kept for compatibility.",
      +        "type": "string"
      +      },
      +      "gasLimitSuggestedHex": {
      +        "description": "The SAME limit in HEXADECIMAL with 0x: it is the one the JSON-RPC requires (eth_sendTransaction or eth_estimateGas).",
      +        "type": "string"
      +      },
      +      "name": {
      +        "description": "Function that is called: \"approve\" or \"fundPurchase\".",
      +        "type": "string"
      +      },
      +      "skip": {
      +        "description": "Only in step 1: true if the allowance already covers the amount and you can skip it.",
      +        "type": "boolean"
      +      },
      +      "step": {
      +        "description": "Sending order: 1 approve, 2 fundPurchase.",
      +        "type": "number"
      +      },
      +      "to": {
      +        "description": "Destination contract of the transaction.",
      +        "type": "string"
      +      },
      +      "value": {
      +        "description": "Native POL to send, in HEXADECIMAL with 0x (JSON-RPC QUANTITY): always \"0x0\".",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "step",
      +      "name",
      +      "to",
      +      "data",
      +      "value",
      +      "gasLimitSuggested",
      +      "gasLimitSuggestedHex",
      +      "description"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / unaSolaFirma
      Removed value: -{
      -  "additionalProperties": true,
      -  "description": "Only with `una_sola_firma: true`: the EIP-3009 authorization you sign so that Bernuvia sends the deposit and pays the gas.",
      -  "properties": {
      -    "cancelar": {
      -      "description": "How to withdraw the authorization if you decide not to pay.",
      -      "type": "string"
      -    },
      -    "dominioOrigen": {
      -      "description": "Where the EIP-712 domain came from: \"cadena\" (read from the token) or \"asumido\".",
      -      "type": "string"
      -    },
      -    "nonce": {
      -      "description": "The bytes32 of the authorization. SAVE IT: it is what cancel_deposit_authorization asks for.",
      -      "type": "string"
      -    },
      -    "siguientePaso": {
      -      "description": "What to do with the signature.",
      -      "type": "string"
      -    },
      -    "typedData": {
      -      "additionalProperties": true,
      -      "description": "The EIP-712 message (ReceiveWithAuthorization) to sign with signTypedData, WITHOUT touching any field.",
      -      "properties": {
      -        "domain": {
      -          "additionalProperties": true,
      -          "description": "EIP-712 domain of the USDC (name, version, chainId, verifyingContract).",
      -          "type": "object"
      -        },
      -        "message": {
      -          "additionalProperties": true,
      -          "description": "The signed values. Amounts go as a decimal string, not as a number.",
      -          "properties": {
      -            "from": {
      -              "description": "Your linked wallet.",
      -              "type": "string"
      -            },
      -            "nonce": {
      -              "description": "bytes32 of the authorization (digest of the quote).",
      -              "type": "string"
      -            },
      -            "to": {
      -              "description": "The escrow contract.",
      -              "type": "string"
      -            },
      -            "validAfter": {
      -              "description": "Start of the window (epoch s), as a decimal string.",
      -              "type": "string"
      -            },
      -            "validBefore": {
      -              "description": "End of the window (epoch s), as a decimal string: it is the expiry of the quote.",
      -              "type": "string"
      -            },
      -            "value": {
      -              "description": "Authorized amount in minimal units of USDC, as a decimal string.",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "from",
      -            "to",
      -            "value",
      -            "validAfter",
      -            "validBefore",
      -            "nonce"
      -          ],
      -          "type": "object"
      -        },
      -        "primaryType": {
      -          "description": "Always \"ReceiveWithAuthorization\".",
      -          "type": "string"
      -        },
      -        "types": {
      -          "additionalProperties": true,
      -          "description": "EIP-712 type definitions.",
      -          "type": "object"
      -        }
      -      },
      -      "required": [
      -        "domain",
      -        "types",
      -        "primaryType",
      -        "message"
      -      ],
      -      "type": "object"
      -    },
      -    "validAfter": {
      -      "description": "The same validAfter from the message (epoch s), as a decimal string.",
      -      "type": "string"
      -    },
      -    "validBefore": {
      -      "description": "The same validBefore from the message (epoch s), as a decimal string.",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "typedData",
      -    "nonce",
      -    "validAfter",
      -    "validBefore",
      -    "dominioOrigen",
      -    "siguientePaso",
      -    "cancelar"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / properties / wallet / description
      Previous value: -"The wallet that MUST send the transactions (msg.sender == cotizacion.buyer)."New value: +"The wallet that MUST send the transactions (msg.sender == quote.buyer)."
    • changedOutput schema / required
      Previous value: -[
      -  "ordenId",
      -  "compraId",
      -  "estado",
      -  "red",
      -  "contratos",
      -  "wallet",
      -  "importe",
      -  "cotizacion",
      -  "caducaEn",
      -  "segundosRestantes",
      -  "transacciones",
      -  "gas",
      -  "saldos",
      -  "instrucciones"
      -]New value: +[
      +  "orderId",
      +  "purchaseId",
      +  "status",
      +  "network",
      +  "contracts",
      +  "wallet",
      +  "amount",
      +  "quote",
      +  "expiresAt",
      +  "secondsLeft",
      +  "transactions",
      +  "gas",
      +  "balances",
      +  "instructions"
      +]
  2. Changed85 schema fields changed
    • changedInput schema / properties / acceptTermsAndImmediateDownload / description
      Previous value: -"Opcional; ya no hace falta. Completar el depósito supone aceptar las condiciones de Bernuvia, incluida la descarga inmediata tras el pago, con la que se renuncia al desistimiento de 14 días. Si lo mandas a true, queda además registrado como consentimiento expreso con la fecha, la hora, la versión de los Términos y esta orden. / Optional, no longer required: completing the deposit means accepting the terms, including the immediate download."New value: +"Optional, no longer required. Completing the deposit means accepting Bernuvia's terms, including the immediate download after payment, which waives the 14-day right of withdrawal. If you send it as true, it is also recorded as express consent with the date, the time, the version of the Terms and this order."
    • changedInput schema / properties / acepta_terminos_y_descarga_inmediata / description
      Previous value: -"ALIAS RETIRADO de `acceptTermsAndImmediateDownload`: sigue funcionando, pero usa `acceptTermsAndImmediateDownload` (se quitará en una tanda futura, aún sin fecha). / DEPRECATED alias of `acceptTermsAndImmediateDownload`. Opcional; ya no hace falta. Completar el depósito supone aceptar las condiciones de Bernuvia, incluida la descarga inmediata tras el pago, con la que se renuncia al desistimiento de 14 días. Si lo mandas a true, queda además registrado como consentimiento expreso con la fecha, la hora, la versión de los Términos y esta orden. / Optional, no longer required: completing the deposit means accepting the terms, including the immediate download."New value: +"DEPRECATED alias of `acceptTermsAndImmediateDownload`: it still works, but use `acceptTermsAndImmediateDownload` (it will be removed in a future round, no date yet). Optional, no longer required. Completing the deposit means accepting Bernuvia's terms, including the immediate download after payment, which waives the 14-day right of withdrawal. If you send it as true, it is also recorded as express consent with the date, the time, the version of the Terms and this order."
    • changedInput schema / properties / ordenId / description
      Previous value: -"ALIAS RETIRADO de `orderId`: sigue funcionando, pero usa `orderId` (se quitará en una tanda futura, aún sin fecha). / DEPRECATED alias of `orderId`. El ordenId (uuid) que devolvió prepare_payment."New value: +"DEPRECATED alias of `orderId`: it still works, but use `orderId` (it will be removed in a future round, no date yet). The ordenId (uuid) returned by prepare_payment."
    • changedInput schema / properties / orderId / description
      Previous value: -"El ordenId (uuid) que devolvió prepare_payment."New value: +"The ordenId (uuid) returned by prepare_payment."
    • changedInput schema / properties / singleSignature / description
      Previous value: -"Opcional. true = variante SIN GAS (fase 6, solo si la plataforma la tiene activa y el contrato de custodia la admite): además de lo de siempre devuelve `unaSolaFirma.typedData`, una autorización EIP-3009 (ReceiveWithAuthorization) del USDC que firmas con signTypedData, y después llamas submit_signed_deposit; Bernuvia envía la transacción y paga el gas. La cotización dura menos que en la vía clásica. Tu wallet no puede tener código (contratos o EIP-7702)."New value: +"Optional. true = GASLESS variant (phase 6, only if the platform has it active and the escrow contract supports it): on top of the usual response it returns `unaSolaFirma.typedData`, an EIP-3009 (ReceiveWithAuthorization) authorization of the USDC that you sign with signTypedData, and then you call submit_signed_deposit; Bernuvia sends the transaction and pays the gas. The quote lasts less than in the classic path. Your wallet cannot have code (contracts or EIP-7702)."
    • changedInput schema / properties / una_sola_firma / description
      Previous value: -"ALIAS RETIRADO de `singleSignature`: sigue funcionando, pero usa `singleSignature` (se quitará en una tanda futura, aún sin fecha). / DEPRECATED alias of `singleSignature`. Opcional. true = variante SIN GAS (fase 6, solo si la plataforma la tiene activa y el contrato de custodia la admite): además de lo de siempre devuelve `unaSolaFirma.typedData`, una autorización EIP-3009 (ReceiveWithAuthorization) del USDC que firmas con signTypedData, y después llamas submit_signed_deposit; Bernuvia envía la transacción y paga el gas. La cotización dura menos que en la vía clásica. Tu wallet no puede tener código (contratos o EIP-7702)."New value: +"DEPRECATED alias of `singleSignature`: it still works, but use `singleSignature` (it will be removed in a future round, no date yet). Optional. true = GASLESS variant (phase 6, only if the platform has it active and the escrow contract supports it): on top of the usual response it returns `unaSolaFirma.typedData`, an EIP-3009 (ReceiveWithAuthorization) authorization of the USDC that you sign with signTypedData, and then you call submit_signed_deposit; Bernuvia sends the transaction and pays the gas. The quote lasts less than in the classic path. Your wallet cannot have code (contracts or EIP-7702)."
    • changedOutput schema / properties / caducaEn / description
      Previous value: -"Vencimiento de la cotización en ISO 8601."New value: +"Expiry of the quote in ISO 8601."
    • changedOutput schema / properties / compraId / description
      Previous value: -"El identificador on-chain (bytes32) de la compra: igual a cotizacion.orderId."New value: +"The on-chain identifier (bytes32) of the purchase: the same as cotizacion.orderId."
    • changedOutput schema / properties / contratos / description
      Previous value: -"Direcciones contra las que se firma."New value: +"Addresses the signatures are made against."
    • changedOutput schema / properties / contratos / properties / escrow / description
      Previous value: -"Contrato de custodia (destino del paso 2)."New value: +"Escrow contract (destination of step 2)."
    • changedOutput schema / properties / contratos / properties / usdc / description
      Previous value: -"Contrato del token USDC (destino del paso 1)."New value: +"USDC token contract (destination of step 1)."
    • changedOutput schema / properties / cotizacion / description
      Previous value: -"La cotización firmada por Bernuvia: se devuelve TAL CUAL en submit_signed_deposit y es lo que consume fundPurchase."New value: +"The quote signed by Bernuvia: send it back AS IS in submit_signed_deposit, and it is what fundPurchase consumes."
    • changedOutput schema / properties / cotizacion / properties / amount / description
      Previous value: -"Importe en unidades mínimas de USDC, como cadena decimal."New value: +"Amount in minimal units of USDC, as a decimal string."
    • changedOutput schema / properties / cotizacion / properties / autoReleaseAfter / description
      Previous value: -"Segundos de custodia antes de la liberación automática."New value: +"Seconds in escrow before the automatic release."
    • changedOutput schema / properties / cotizacion / properties / buyer / description
      Previous value: -"Wallet compradora: la única que puede depositar."New value: +"Buyer wallet: the only one that can deposit."
    • changedOutput schema / properties / cotizacion / properties / chainId / description
      Previous value: -"Cadena contra la que se firmó."New value: +"Chain the signature was made against."
    • changedOutput schema / properties / cotizacion / properties / deadline / description
      Previous value: -"Vencimiento de la firma (epoch s): el mismo instante que caducaEn."New value: +"Expiry of the signature (epoch s): the same instant as caducaEn."
    • changedOutput schema / properties / cotizacion / properties / feeBps / description
      Previous value: -"Comisión en puntos básicos (100 = 1 %)."New value: +"Fee in basis points (100 = 1 %)."
    • changedOutput schema / properties / cotizacion / properties / issuedAt / description
      Previous value: -"Emisión (epoch s). Solo en los contratos que lo exigen; ausente en v1."New value: +"Issuance (epoch s). Only in the contracts that require it; absent in v1."
    • changedOutput schema / properties / cotizacion / properties / nonce / description
      Previous value: -"Nonce anti-replay (uint256) como cadena decimal."New value: +"Anti-replay nonce (uint256) as a decimal string."
    • changedOutput schema / properties / cotizacion / properties / orderId / description
      Previous value: -"bytes32 de la compra (igual a compraId)."New value: +"bytes32 of the purchase (the same as compraId)."
    • changedOutput schema / properties / cotizacion / properties / seller / description
      Previous value: -"Wallet de cobro del vendedor."New value: +"The seller's payout wallet."
    • changedOutput schema / properties / cotizacion / properties / signature / description
      Previous value: -"Firma EIP-712 del quoteSigner de Bernuvia (0x…)."New value: +"EIP-712 signature of Bernuvia's quoteSigner (0x…)."
    • changedOutput schema / properties / cotizacion / properties / token / description
      Previous value: -"Dirección del USDC."New value: +"Address of the USDC."
    • changedOutput schema / properties / cotizacion / properties / verifyingContract / description
      Previous value: -"Contrato de custodia del dominio EIP-712."New value: +"Escrow contract of the EIP-712 domain."
    • changedOutput schema / properties / estado / description
      Previous value: -"Estado de la orden tras cotizarla: siempre \"quoted\"."New value: +"State of the order once quoted: always \"quoted\"."
    • changedOutput schema / properties / gas / description
      Previous value: -"Tarifas sugeridas y coste estimado. Si el RPC no respondió, llega solo con `nota`."New value: +"Suggested fees and estimated cost. If the RPC did not respond, it arrives with `nota` only."
    • changedOutput schema / properties / gas / properties / calculadoEn / description
      Previous value: -"Cuándo se estimaron las tarifas (ISO 8601): caducan en ~1 minuto."New value: +"When the fees were estimated (ISO 8601): they expire in ~1 minute."
    • changedOutput schema / properties / gas / properties / maxFeePerGasSugerido / description
      Previous value: -"maxFeePerGas en wei, en DECIMAL (cadena). Por compatibilidad."New value: +"maxFeePerGas in wei, in DECIMAL (string). For compatibility."
    • changedOutput schema / properties / gas / properties / maxFeePerGasSugeridoHex / description
      Previous value: -"El MISMO maxFeePerGas en HEXADECIMAL con 0x: lo que exige el JSON-RPC."New value: +"The SAME maxFeePerGas in HEXADECIMAL with 0x: what the JSON-RPC requires."
    • changedOutput schema / properties / gas / properties / maxPriorityFeePerGasSugerido / description
      Previous value: -"maxPriorityFeePerGas en wei, en DECIMAL (cadena). Por compatibilidad."New value: +"maxPriorityFeePerGas in wei, in DECIMAL (string). For compatibility."
    • changedOutput schema / properties / gas / properties / maxPriorityFeePerGasSugeridoHex / description
      Previous value: -"El MISMO maxPriorityFeePerGas en HEXADECIMAL con 0x: lo que exige el JSON-RPC."New value: +"The SAME maxPriorityFeePerGas in HEXADECIMAL with 0x: what the JSON-RPC requires."
    • changedOutput schema / properties / gas / properties / nota / description
      Previous value: -"Aclaración en texto; es el ÚNICO campo si no se pudieron estimar las tarifas."New value: +"Text clarification; it is the ONLY field if the fees could not be estimated."
    • changedOutput schema / properties / gas / properties / polNecesario / description
      Previous value: -"La misma cifra en POL humano, como cadena decimal."New value: +"The same figure in human POL, as a decimal string."
    • changedOutput schema / properties / gas / properties / polNecesarioWei / description
      Previous value: -"POL que hay que tener para el gas de los dos pasos, en wei y como cadena decimal."New value: +"POL you need to hold for the gas of both steps, in wei and as a decimal string."
    • changedOutput schema / properties / gas / properties / prioridadMinimaGwei / description
      Previous value: -"Prioridad mínima en gwei por debajo de la cual la transacción se atasca en Polygon."New value: +"Minimum priority in gwei below which the transaction gets stuck on Polygon."
    • changedOutput schema / properties / importe / description
      Previous value: -"El importe del depósito, en las dos unidades."New value: +"The deposit amount, in both units."
    • changedOutput schema / properties / importe / properties / unidades / description
      Previous value: -"Unidades mínimas de USDC (6 decimales), como cadena decimal."New value: +"Minimal units of USDC (6 decimals), as a decimal string."
    • changedOutput schema / properties / importe / properties / usdc / description
      Previous value: -"El mismo importe en USDC humano, como cadena decimal."New value: +"The same amount in human USDC, as a decimal string."
    • changedOutput schema / properties / instrucciones / description
      Previous value: -"Pasos en texto, en orden, incluidas las reglas sobre las cantidades hexadecimales."New value: +"Steps in text, in order, including the rules about hexadecimal amounts."
    • changedOutput schema / properties / ordenId / description
      Previous value: -"El uuid de la orden en Bernuvia."New value: +"The uuid of the order in Bernuvia."
    • changedOutput schema / properties / red / description
      Previous value: -"La red donde hay que enviar las transacciones."New value: +"The network where the transactions have to be sent."
    • changedOutput schema / properties / red / properties / chainId / description
      Previous value: -"Id de la cadena (137 = Polygon)."New value: +"Chain id (137 = Polygon)."
    • changedOutput schema / properties / red / properties / nombre / description
      Previous value: -"Nombre legible de la red."New value: +"Readable name of the network."
    • changedOutput schema / properties / saldos / description
      Previous value: -"Saldos de la wallet leídos al vuelo. Si el RPC no respondió, llega solo con `nota`."New value: +"Balances of the wallet, read on the fly. If the RPC did not respond, it arrives with `nota` only."
    • changedOutput schema / properties / saldos / properties / allowanceSuficiente / description
      Previous value: -"¿El allowance cubre el importe? Si es true, omite el paso 1."New value: +"Does the allowance cover the amount? If true, skip step 1."
    • changedOutput schema / properties / saldos / properties / allowanceUnidades / description
      Previous value: -"Allowance concedido al escrow, en unidades mínimas y como cadena decimal."New value: +"Allowance granted to the escrow, in minimal units and as a decimal string."
    • changedOutput schema / properties / saldos / properties / nota / description
      Previous value: -"Aclaración en texto; es el ÚNICO campo si no se pudieron leer los saldos."New value: +"Text clarification; it is the ONLY field if the balances could not be read."
    • changedOutput schema / properties / saldos / properties / polFaltante / description
      Previous value: -"La misma falta en POL humano, como cadena decimal."New value: +"The same shortfall in human POL, as a decimal string."
    • changedOutput schema / properties / saldos / properties / polFaltanteWei / description
      Previous value: -"POL que falta, en wei y como cadena decimal (\"0\" si sobra)."New value: +"POL that is missing, in wei and as a decimal string (\"0\" if there is enough)."
    • changedOutput schema / properties / saldos / properties / polSuficiente / description
      Previous value: -"¿El POL alcanza para el gas de los dos pasos?"New value: +"Is the POL enough for the gas of both steps?"
    • changedOutput schema / properties / saldos / properties / polWei / description
      Previous value: -"Saldo POL nativo en wei, como cadena decimal."New value: +"Native POL balance in wei, as a decimal string."
    • changedOutput schema / properties / saldos / properties / usdcFaltanteUnidades / description
      Previous value: -"USDC que falta, en unidades mínimas y como cadena decimal (\"0\" si sobra)."New value: +"USDC that is missing, in minimal units and as a decimal string (\"0\" if there is enough)."
    • changedOutput schema / properties / saldos / properties / usdcSuficiente / description
      Previous value: -"¿El saldo USDC cubre el importe?"New value: +"Does the USDC balance cover the amount?"
    • changedOutput schema / properties / saldos / properties / usdcUnidades / description
      Previous value: -"Saldo USDC en unidades mínimas, como cadena decimal."New value: +"USDC balance in minimal units, as a decimal string."
    • changedOutput schema / properties / segundosRestantes / description
      Previous value: -"Segundos que le quedan a la cotización al responder."New value: +"Seconds left on the quote at the time of the response."
    • changedOutput schema / properties / transacciones / description
      Previous value: -"Las transacciones de la vía clásica, EN ORDEN: approve (paso 1) y fundPurchase (paso 2)."New value: +"The transactions of the classic path, IN ORDER: approve (step 1) and fundPurchase (step 2)."
    • changedOutput schema / properties / transacciones / items / properties / data / description
      Previous value: -"Calldata ya codificado (0x…)."New value: +"Already encoded calldata (0x…)."
    • changedOutput schema / properties / transacciones / items / properties / descripcion / description
      Previous value: -"Qué hace esa transacción."New value: +"What that transaction does."
    • changedOutput schema / properties / transacciones / items / properties / gasLimitSugerido / description
      Previous value: -"Límite de gas sugerido en DECIMAL (cadena). Se conserva por compatibilidad."New value: +"Suggested gas limit in DECIMAL (string). Kept for compatibility."
    • changedOutput schema / properties / transacciones / items / properties / gasLimitSugeridoHex / description
      Previous value: -"El MISMO límite en HEXADECIMAL con 0x: es el que exige el JSON-RPC (eth_sendTransaction / eth_estimateGas)."New value: +"The SAME limit in HEXADECIMAL with 0x: it is the one the JSON-RPC requires (eth_sendTransaction or eth_estimateGas)."
    • changedOutput schema / properties / transacciones / items / properties / nombre / description
      Previous value: -"Función que se llama: \"approve\" o \"fundPurchase\"."New value: +"Function that is called: \"approve\" or \"fundPurchase\"."
    • changedOutput schema / properties / transacciones / items / properties / omitir / description
      Previous value: -"Solo en el paso 1: true si el allowance ya cubre el importe y puedes saltártelo."New value: +"Only in step 1: true if the allowance already covers the amount and you can skip it."
    • changedOutput schema / properties / transacciones / items / properties / paso / description
      Previous value: -"Orden de envío: 1 approve, 2 fundPurchase."New value: +"Sending order: 1 approve, 2 fundPurchase."
    • changedOutput schema / properties / transacciones / items / properties / to / description
      Previous value: -"Contrato destino de la transacción."New value: +"Destination contract of the transaction."
    • changedOutput schema / properties / transacciones / items / properties / value / description
      Previous value: -"POL nativo a enviar, en HEXADECIMAL con 0x (QUANTITY del JSON-RPC): siempre \"0x0\"."New value: +"Native POL to send, in HEXADECIMAL with 0x (JSON-RPC QUANTITY): always \"0x0\"."
    • changedOutput schema / properties / unaSolaFirma / description
      Previous value: -"Solo con `una_sola_firma: true`: la autorización EIP-3009 que firmas para que Bernuvia envíe el depósito y pague el gas."New value: +"Only with `una_sola_firma: true`: the EIP-3009 authorization you sign so that Bernuvia sends the deposit and pays the gas."
    • changedOutput schema / properties / unaSolaFirma / properties / cancelar / description
      Previous value: -"Cómo retirar la autorización si decides no pagar."New value: +"How to withdraw the authorization if you decide not to pay."
    • changedOutput schema / properties / unaSolaFirma / properties / dominioOrigen / description
      Previous value: -"De dónde salió el dominio EIP-712: \"cadena\" (leído del token) o \"asumido\"."New value: +"Where the EIP-712 domain came from: \"cadena\" (read from the token) or \"asumido\"."
    • changedOutput schema / properties / unaSolaFirma / properties / nonce / description
      Previous value: -"El bytes32 de la autorización. GUÁRDALO: es lo que pide cancel_deposit_authorization."New value: +"The bytes32 of the authorization. SAVE IT: it is what cancel_deposit_authorization asks for."
    • changedOutput schema / properties / unaSolaFirma / properties / siguientePaso / description
      Previous value: -"Qué hacer con la firma."New value: +"What to do with the signature."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / description
      Previous value: -"El mensaje EIP-712 (ReceiveWithAuthorization) a firmar con signTypedData, SIN tocar ningún campo."New value: +"The EIP-712 message (ReceiveWithAuthorization) to sign with signTypedData, WITHOUT touching any field."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / domain / description
      Previous value: -"Dominio EIP-712 del USDC (name, version, chainId, verifyingContract)."New value: +"EIP-712 domain of the USDC (name, version, chainId, verifyingContract)."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / description
      Previous value: -"Los valores firmados. Las cantidades van como cadena decimal, no como número."New value: +"The signed values. Amounts go as a decimal string, not as a number."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / properties / from / description
      Previous value: -"Tu wallet vinculada."New value: +"Your linked wallet."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / properties / nonce / description
      Previous value: -"bytes32 de la autorización (digest de la cotización)."New value: +"bytes32 of the authorization (digest of the quote)."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / properties / to / description
      Previous value: -"El contrato de custodia."New value: +"The escrow contract."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / properties / validAfter / description
      Previous value: -"Inicio de la ventana (epoch s), como cadena decimal."New value: +"Start of the window (epoch s), as a decimal string."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / properties / validBefore / description
      Previous value: -"Fin de la ventana (epoch s), como cadena decimal: es el vencimiento de la cotización."New value: +"End of the window (epoch s), as a decimal string: it is the expiry of the quote."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / message / properties / value / description
      Previous value: -"Importe autorizado en unidades mínimas de USDC, como cadena decimal."New value: +"Authorized amount in minimal units of USDC, as a decimal string."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / primaryType / description
      Previous value: -"Siempre \"ReceiveWithAuthorization\"."New value: +"Always \"ReceiveWithAuthorization\"."
    • changedOutput schema / properties / unaSolaFirma / properties / typedData / properties / types / description
      Previous value: -"Definición de tipos EIP-712."New value: +"EIP-712 type definitions."
    • changedOutput schema / properties / unaSolaFirma / properties / validAfter / description
      Previous value: -"El mismo validAfter del mensaje (epoch s), como cadena decimal."New value: +"The same validAfter from the message (epoch s), as a decimal string."
    • changedOutput schema / properties / unaSolaFirma / properties / validBefore / description
      Previous value: -"El mismo validBefore del mensaje (epoch s), como cadena decimal."New value: +"The same validBefore from the message (epoch s), as a decimal string."
    • changedOutput schema / properties / wallet / description
      Previous value: -"La wallet que DEBE enviar las transacciones (msg.sender == cotizacion.buyer)."New value: +"The wallet that MUST send the transactions (msg.sender == cotizacion.buyer)."
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and it delivers: it discloses that msg.sender must be the linked wallet (not the owner's), that Bernuvia neither signs nor pays gas, that the purchase belongs to the owner, and that completing the deposit accepts terms and waives the 14-day withdrawal right. It omits failure/idempotency behavior, but the safety-relevant traits are unusually well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return behavior are front-loaded, and most sentences carry distinct information. It is information-dense to the point of being heavy, the caps emphasis (YOU/YOUR) is noisy, and the final sentence overlaps the acceptTermsAndImmediateDownload parameter description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-step web3 flow the description covers the prerequisite, the signing/gas split, the wallet constraint, and the terms/withdrawal consequence, and an output schema exists so return values need not be restated. Minor gaps remain around error conditions and the quote-expiry mechanics it only alludes to.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents orderId, singleSignature, and acceptTermsAndImmediateDownload, including the EIP-3009 flow and non-contract-wallet constraint. The description largely restates the terms-acceptance semantics rather than adding new parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and outcome: it returns the Bernuvia-signed quote plus the USDC approve/fundPurchase calldata the agent signs. It anchors itself to the sibling prepare_payment as the prerequisite and implicitly the non-gasless counterpart to submit_signed_deposit, so the agent can distinguish it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The prerequisite chain is explicit (for an order created with prepare_payment), and the schema documents the optional gasless alternative that routes to submit_signed_deposit. However, the main description gives no explicit when-not or sibling comparison; the routing lives mostly in the parameter description rather than the headline guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources