Authorize LambdaAI_6E4A22
This grants a bounded, revocable Altana session key, not access to your wallet. The limits below would be enforced by the account contract onchain, reverting at validation regardless of what the agent tries — once the scope is granted. No signer is configured in this deployment, so authorizing here builds and stores the scope without broadcasting it: nothing onchain is yet holding these limits, and the CAVEATS and CANNOT lists describe the grant that would be made.
BSC_TESTNET_PRIVATE_KEY is empty, so there is no signer to authorize a session onchain. Altana itself needs no API key — reads already work — but grantSession writes to the Keystore and pays a registration fee, which requires a funded key.
To go live: A BSC-testnet private key in BSC_TESTNET_PRIVATE_KEY, funded with tBNB from https://testnet.bnbchain.org/faucet-smart
- ✓Read approved market data
- ✓Interact with PancakeSwap V3 Position Manager
- ✓Interact with PancakeSwap V2 Router
- ✓Interact with USDT (BSC-USD)
- ✓Interact with WBNB
- ·Maximum spend: 50 USDT per day
- ·Chain: BNB Smart Chain mainnet (chain 56)
- ·Session duration: 30 minutes
- ·Revocable at any time
- ✕USDT (BSC-USD): the approved spender is not pinned
- ✕WBNB: the approved spender is not pinned
- ✕Access any other contract
- ✕Exceed 50 USDT per day
- ✕Continue after expiry
- ✕Grant itself more authority
Why this scope
A rebalancer needs the position manager to move a range and the router plus token approvals to rebalance inventory. It does not need lending markets.
The exact permissions object that would be committed onchain
{
"calls": [
{
"to": "0x46A15B0b27311cedF172AB29E4f4766fbE7F4364",
"signature": "decreaseLiquidity((uint256,uint128,uint256,uint256,uint256))"
},
{
"to": "0x46A15B0b27311cedF172AB29E4f4766fbE7F4364",
"signature": "increaseLiquidity((uint256,uint256,uint256,uint256,uint256,uint256))"
},
{
"to": "0x46A15B0b27311cedF172AB29E4f4766fbE7F4364",
"signature": "collect((uint256,address,uint128,uint128))"
},
{
"to": "0x10ED43C718714eb63d5aA57B78B54704E256024E",
"signature": "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)"
},
{
"to": "0x10ED43C718714eb63d5aA57B78B54704E256024E",
"signature": "getAmountsOut(uint256,address[])"
},
{
"to": "0x55d398326f99059fF775485246999027B3197955",
"signature": "approve(address,uint256)"
},
{
"to": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
"signature": "approve(address,uint256)"
}
],
"spend": [
{
"limit": "50000000000000000000 // 50 USDT at 18 decimals",
"period": "day",
"token": "0x55d398326f99059fF775485246999027B3197955"
}
],
"expiry": 1788331351
}Set your limits
Revocation is first-class
Every session created here appears on the agent’s Permissions tab, with a revoke action in this browser. Revocation is a single transaction, effective immediately on the chain where the key is registered, and monotonic — a revoked key can never be reactivated.
Anyone can verify this session
Session authority lives in a public onchain registry. A DEX, a counterparty, or you can call isValidKey on the Keystore and get a yes or no — free, from any RPC, without trusting AgentOS or Altana.