Upshift builds custom, non-custodial vaults for wallets, exchanges, neobanks and asset managers. Tell us what you are building and the team will follow up.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
(function(){
var dl = window.dataLayer = window.dataLayer || [];
function cta(m){ var i = m.querySelector('.up-cta-source'); return (i && i.value) || ''; }
function push(ev, m){ dl.push({event: ev, cta_source: cta(m), page_path: location.pathname}); }
document.querySelectorAll('.modal-wrap').forEach(function(m){
var form = m.querySelector('form'); if (!form) return;
var started = false, submitted = false;
new MutationObserver(function(){
if (m.classList.contains('is-open') && !m._upOpen){ m._upOpen = true; started = false; push('contact_modal_open', m); }
if (!m.classList.contains('is-open')) m._upOpen = false;
}).observe(m, {attributes: true, attributeFilter: ['class']});
form.addEventListener('focusin', function(e){
if (started || !e.target.matches('input:not([type=hidden]):not([type=submit]), textarea')) return;
started = true; push('contact_form_start', m);
});
var done = m.querySelector('.w-form-done');
if (done) new MutationObserver(function(){
if (!submitted && getComputedStyle(done).display !== 'none'){ submitted = true; push('contact_form_submit', m); }
}).observe(done, {attributes: true, attributeFilter: ['style', 'class']});
});
})();