Skip to main content
POST
https://api.heyvincent.ai
/
user
/
{appId}
/
install-app
curl -X POST https://api.heyvincent.ai/user/123/install-app \
  -H "Content-Type: application/json" \
  -d '{"userControllerAddress": "0xUserWalletAddress..."}'
{
  "agentSignerAddress": "0xPKPAddress...",
  "agentSmartAccountAddress": "0xSmartAccountAddress...",
  "appInstallationDataToSign": {
    "typedData": {
      "domain": { "...": "..." },
      "types": { "...": "..." },
      "message": { "...": "..." }
    }
  }
}
Start the installation process by providing the user’s wallet address. Returns typed data that must be signed by the user. This endpoint handles both new installations and reinstalling previously uninstalled apps:
  • New installation: Mints a new agent signer and permits the app
  • Reinstall: If the user previously uninstalled the app, automatically detects this and reinstalls it with the existing agent signer

Request

appId
integer
required
The unique identifier of the app to install
userControllerAddress
string
required
The Ethereum address of the user’s wallet
sponsorGas
boolean
default:"true"
Controls the transaction submission method:
  • true (default): Returns EIP-712 typed data for gas-sponsored relay via Gelato. The user signs the typed data and submits it to the complete-installation endpoint.
  • false: Returns raw transaction data (to and data fields) that the user can submit directly from their EOA, paying gas themselves. Useful for development or when gas sponsorship is not desired.

Response

agentSignerAddress
string
The signer address for the agent smart account. Only the delegated app can use this signer to execute transactions.
agentSmartAccountAddress
string
The smart account address for the agent. Each app has its own agent wallet, owned by the user’s EOA.
rawTransaction
object
Raw transaction data for direct EOA submission. Only returned when sponsorGas: false. The user submits this transaction directly from their wallet, paying gas themselves.
appInstallationDataToSign
object
EIP-712 typed data that the user must sign to complete installation. Only returned when sponsorGas: true (default). Pass this object to the complete-installation endpoint along with the signature.
curl -X POST https://api.heyvincent.ai/user/123/install-app \
  -H "Content-Type: application/json" \
  -d '{"userControllerAddress": "0xUserWalletAddress..."}'
{
  "agentSignerAddress": "0xPKPAddress...",
  "agentSmartAccountAddress": "0xSmartAccountAddress...",
  "appInstallationDataToSign": {
    "typedData": {
      "domain": { "...": "..." },
      "types": { "...": "..." },
      "message": { "...": "..." }
    }
  }
}