Players

Request transfer ownership of a player.

Changed on

This endpoint allows you to perform a request to change the owner of an account. To perform an update on the owner of an account, first you must provide a new owner address. Once requested, the owner must accept to take ownership by calling acceptOwnership() in the smart contract account.

post/v1/players/{id}/request_transfer_ownership

Request

  • Base URL: https://api.openfort.io
  • URL: https://api.openfort.io/v1/players/{id}/request_transfer_ownership
  • Auth: HTTP bearer

Path parameters

idstring required

Specifies the unique player ID (starts with pla_).

Request body

policystring required

ID of the Policy that defines the gas sponsorship strategy (starts with pol_). A policy must be provided.

chainIdinteger required

The chain ID. Must be a supported chain.

newOwnerAddressstring required

The address of the new owner

playerstring

ID of the Player that has the Account you want to transfer ownership from (starts with pla_).

Example request

{
  "policy": "pol_7e07ae30-2a4d-48fa-803f-361da94905dd",
  "chainId": 80002,
  "newOwnerAddress": "0x1234567890abcdef1234567890abcdef12345678",
  "player": "pla_e0b84653-1741-4a3d-9e91-2b0fd2942f60"
}

Response

Successful response.

idstring required
object'transactionIntent' required
createdAtinteger required
updatedAtinteger required

The unix timestamp in seconds when the transactionIntent was created.

chainIdinteger required

The chain ID.

abstractionType'accountAbstractionV6' | 'accountAbstractionV8' | 'accountAbstractionV9' | 'standard' required
userOperationHashstring
userOperationunknown
finalCoststring

The actual transaction cost in USD, available after on-chain confirmation.

Example response

{
  "chainId": 5,
  "details": {
    "from": "0x8ab66318aCC6b29A27e74e534bfe3ecf81C50387",
    "data": "0x8c5a...",
    "nonce": "0",
    "gas": "21000",
    "maxFeePerGas": "1000000000",
    "maxPriorityFeePerGas": "1000000000",
    "value": "0x8ab66318aCC6b29A27e74e534bfe3ecf81C50387"
  },
  "response": {
    "error": {
      "reason": "AA31: paymaster deposit too low",
      "name": "ExecutionResult",
      "explanation": {
        "cause": "The paymaster does not have enough native tokens deposited in the EntryPoint to cover the gas cost.",
        "solution": "Top up your account balance in the dashboard or deposit more to the Paymaster contract on the relevant chain."
      }
    }
  },
  "finalCost": "0.42",
  "interactions": [
    {
      "value": "1000000000000000000",
      "contract": "con_0cddb398-1dc6-4e6f-8726-9ec7cea85f35",
      "functionName": "mint",
      "functionArgs": [
        "0x662D24Bf7Ea2dD6a7D0935F680a6056b94fE934d"
      ]
    }
  ]
}

Changes

    • info

      removed from the response property anyOf list for the response status

    • info

      removed the zkSync enum value from the response property for the response status

    • breaking

      the / response's property type changed from no type to object for status

    • info

      the security scope wallets:write was added to the endpoint's security scheme sk

    • info

      added the optional property to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the required property // to the response with the status